HDOJ 1106ソート
2431 ワード
ツールバーの
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41261 Accepted Submission(s): 11824
Problem Description
1行の数字を入力して、この行の数字の中の“5”をすべて空白と見なすと、1行が空白で分割されたいくつかの非負の整数が得られます(一部の整数は“0”で始まり、これらの頭部の“0”は無視されるべきで、この整数がいくつかの“0”から構成されていない限り、この整数は0です).
あなたの任務は、これらの分割で得られた整数を、小さい順にソートして出力することです.
Input
入力には複数のテスト例が含まれており、各入力データのセットには1行の数字しかありません(数字の間にスペースはありません).この行の数字の長さは1000以下です.
入力データ保証:分割された非負の整数は1000000を超えない.入力データがすべて「5」で構成されるはずがない.
Output
各試験例について、分割された整数ソートの結果を出力し、隣接する2つの整数間を1つのスペースで分割し、各出力セットが1行を占める.
Sample Input
Sample Output
Source
POJ
Recommend
Eddy | We have carefully selected several similar problems for you: 1108 1201 1040 1280 1002
いくつかのテストデータ:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41261 Accepted Submission(s): 11824
Problem Description
1行の数字を入力して、この行の数字の中の“5”をすべて空白と見なすと、1行が空白で分割されたいくつかの非負の整数が得られます(一部の整数は“0”で始まり、これらの頭部の“0”は無視されるべきで、この整数がいくつかの“0”から構成されていない限り、この整数は0です).
あなたの任務は、これらの分割で得られた整数を、小さい順にソートして出力することです.
Input
入力には複数のテスト例が含まれており、各入力データのセットには1行の数字しかありません(数字の間にスペースはありません).この行の数字の長さは1000以下です.
入力データ保証:分割された非負の整数は1000000を超えない.入力データがすべて「5」で構成されるはずがない.
Output
各試験例について、分割された整数ソートの結果を出力し、隣接する2つの整数間を1つのスペースで分割し、各出力セットが1行を占める.
Sample Input
0051231232050775
Sample Output
0 77 12312320
Source
POJ
Recommend
Eddy | We have carefully selected several similar problems for you: 1108 1201 1040 1280 1002
いくつかのテストデータ:
505123123205077555
0 77 12312320
00005051231232050775
0 0 77 12312320
50512312320555507750005
0 0 77 12312320
505123123205077
0 77 12312320
051231232055077
0 77 12312320
5550
0
1155663535006555
3 6 11 663
10000000055051120
0 1120 100000000
00060054
4 600
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){
char str[1005];
int a[1005],i,k,len;
while(~scanf("%s",str)){
len=strlen(str);
k=0;
memset(a,0,sizeof(a));
for(i=0;i<len;){ //
while(str[i]=='5')
i++; // 5
while(str[i]!='5'&&i<len){
a[k]=a[k]*10+str[i]-'0';
i++;
}
while(str[i]=='5'&&i<len)
i++; // 5
if(i<len) k++; // ,
} //
sort(a,a+k+1);
if(k>0){
printf("%d",a[0]);
for(i=1;i<=k;i++)
printf(" %d",a[i]);
}
else printf("%d",a[0]);
printf("
");
}
return 0;
}