题目链接:( http://acm.hdu.edu.cn/showproblem.php?pid=1106)
注意要输入多组测试数据!
代码和注释如下:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string s;
int i, l, k, n;
int a[5000];
int main()
{
while (cin >> s)
{
l = s.length();
for (i = 0; i < 5000; ++i) { a[i] = 0; }
k = 0;
s[l] = '5'; //***
for (i = 0; i < l; ++i)
{
if (s[i] == '5' && s[i + 1] == '5') { continue; }
if (s[i] == '5' && s[i + 1] != '5') { ++k; continue; }
else { a[k] = (s[i] - '0') + a[k] * 10; }
}
if (s[0] != '5') { n = 0; }
else { n = 1; }
sort(a + n, a + k + 1);
for (i = n; i < k; ++i) { cout << a[i] << " "; }
cout << a[k] << endl; //必须这样输出才能提交*****
}
return 0;
}
C ++或G ++标准都能AC