hdu 1106

#include<stdio.h>  
#include<string.h>
int main()
{
     char a[1005];
	 int i,j,k,l;
	 char b[1005][1000];
     int flag;
	 int ans;
     char temp[9];
	 while(scanf("%s",a)!=EOF)
	 {
         
		  memset(b,'\0',sizeof(b));
		  if(a[0]=='5')
		  {
			  for(j=1; ;j++)
                   if(a[j]!='5')
				   {
					   flag=j;
					   break;
				   }
		  }

          j=k=0;
          for(i=(a[0]=='5'?flag:0);a[i]!='\0';i++)
		  {
			 
		       if(a[i]=='5')
			   {
				   for(l=i; ;l++,i++)
				   {
					   if(a[l]!='5')
					   {
						   i--;
						   break; 
					   }
					   
				   }
						   if(a[i+1]!='\0')
						   { 
								 b[j][k]='\0';
								 j++;
								 k=0;
						   }
						  
						   else 
						   {
                                  b[j][k]='\0';
								   
						   }
			
			   }
			   else
			   {
				   b[j][k]=a[i];
				   k++;
			   }	  
		  }

		   j++;
		   for(i=0;i<j;i++)
		   {
			   if(b[i][0]=='0')
			   {
			     for(k=1;b[i][k]!='\0';k++)
					 if(b[i][k]!='0')  break;
					 if(b[i][k]!='\0')
						 strcpy(b[i],&b[i][k]);
					 else strcpy(b[i],"0");
				
			   }
		   }

     
		ans=j;
		for(i=0;i<ans;i++)   
		{
		   flag=0;
			for(j=0;j<ans-1;j++)
			{
				if((strlen(b[j])==strlen(b[j+1]) && strcmp(b[j],b[j+1]) > 0 ) || (strlen(b[j])>strlen(b[j+1])) )
				{
					strcpy(temp,b[j]);
					strcpy(b[j],b[j+1]);
					strcpy(b[j+1],temp);
					flag=1;
				}
			}
			if(flag==0)  break;
		}
	       for(i=0;i<ans-1;i++)
			   printf("%s ",b[i]);
		   printf("%s\n",b[ans-1]);
	 }
   return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值