排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。
輸入數據保證:分割得到的非負整數不會大於100000000;輸入數據不可能全由‘5’組成。
#include <set>
#include <map>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <bitset>
#include <string>
#include <vector>
#include <iomanip>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{
char s[5005];
int a[5005];
int i, len, k, n;
while (scanf("%s", s) != EOF)
{
n = 0;
k = 0;
len = strlen(s);
s[len] = '5';
i = 0;
while (s[i++] == '5');
for (i--; i <= len; ++i)
{
if (i > 0 && s[i] == '5' && s[i - 1] == '5')
{
continue;
}
if (s[i] != '5')
{
k = k * 10 + s[i] - '0';
}
else
{
a[n++] = k;
k = 0;
}
}
sort(a, a + n);
printf("%d", a[0]);
for (i = 1; i < n; ++i)
{
printf(" %d", a[i]);
}
printf("\n");
}
return 0;
}