Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
50730 冯诚阳 分割排序 C++ Accepted 2 MS 308 KB 1055 2023-07-12 16:28:37

Tests(1/1):


Code:

#include<iostream> #include<string.h> #include<string> #include<algorithm> using namespace std; bool cmp(string s, string ss) { if (s.size() > ss.size())return false; else if (s.size() < ss.size())return true; else return s < ss; } int main() { string s; while (cin >> s) { s += '5';//给最后一位加5是为了结束最后的读取 string save[1000]; int d = 0,f=0,ans=0,t=0; for (int i = 0; i < s.size(); i++) { if (s[i] == '5') { if (ans == 0&&t!=0) save[d] += '0'; d++; f = 0; ans = 0; t = 0; } else { t++; ans += s[i] - '0'; if (s[i] != '0')f = 1; if (s[i] != '0')save[d] += s[i]; if (s[i] == '0'&&f == 1)save[d] += '0'; } } /*for (int i = 0; i < d; i++) cout << ' ' << save[i];*/ sort(save, save + d, cmp); int p = 0; for (int i = 0; i < d; i++) { if (save[i].empty())continue; if (p == 0) { cout << save[i]; p = 1; } else cout << ' ' << save[i]; } cout << endl; } return 0; }