hdu 1106 排序
生活随笔
收集整理的這篇文章主要介紹了
hdu 1106 排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
排序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)Problem Description 輸入一行數字,如果我們把這行數字中的‘5’都看成空格,那么就得到一行用空格分割的若干非負整數(可能有些整數以‘0’開頭,這些頭部的‘0’應該被忽略掉,除非這個整數就是由若干個‘0’組成的,這時這個整數就是0)。
你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。
Input 輸入包含多組測試用例,每組輸入數據只有一行數字(數字之間沒有空格),這行數字的長度不大于1000。??
輸入數據保證:分割得到的非負整數不會大于100000000;輸入數據不可能全由‘5’組成。
Output 對于每個測試用例,輸出分割得到的整數排序的結果,相鄰的兩個整數之間用一個空格分開,每組輸出占一行。
Sample Input 0051231232050775
Sample Output 0 77 12312320 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() {int s[1005];char str[1005];int i,j,sum,k,len;while(scanf("%s",str)!=EOF){len=strlen(str);str[len]='5';sum=0;i=j=0;while(str[i++]=='5'); /*跳過前綴5*/for(i--;i<=len;++i){if(i>0&&str[i]=='5'&&str[i-1]=='5') /*連續的5*/continue;if(str[i]!='5')sum=sum*10+str[i]-'0';else{s[j++]=sum;sum=0;}}sort(s,s+j);for(i=0;i<j-1;i++)printf("%d ",s[i]);printf("%d\n",s[i]);}return 0; }
總結
以上是生活随笔為你收集整理的hdu 1106 排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个命令,让你的网站支持https
- 下一篇: 宁可相信世上有鬼,也不要相信产品经理那张