排序
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;
}