原题地址:http://codeforces.com/gym/100286/attachments/download/2013/20082009-acmicpc-northeastern-european-regional-contest-neerc-08-en.pdf
题意大概就是让你把写在一块的变量分开。。水题,用string过。
详见代码:
//#include<iostream> #include<fstream> #include<string> #include<algorithm> using namespace std; string s; string allType; string va,ty; string Analyze(string v) { int t = 0; while ((v[t] >= 'A' && v[t] <= 'Z') || (v[t] >= 'a' && v[t] <= 'z'))t++; va.assign(v.begin(), v.begin() + t); ty.assign(v.begin() + t, v.end()); reverse(ty.begin(), ty.end()); return ty + " " + va + ";"; } string a; int main() { ifstream cin("isharp.in"); ofstream cout("isharp.out"); cin.sync_with_stdio(false); getline(cin, s); int tmp = 0; while (s[tmp] != ' ')tmp++; allType.assign(s.begin(), s.begin() + tmp); tmp++; while (true) { int t = tmp; while (s[t] != ',' && s[t] != ';')t++; a.assign(s.begin() + tmp, s.begin() + t); a = allType + Analyze(a); int c = 0; for (int i = 0; i < a.length(); i++) { if (a[i] == '[' || a[i] == ']') { c++; if (c % 2)cout << '['; else cout << ']'; } else cout << a[i]; } cout << endl; if (s[t] == ';')break; tmp = t + 2; } return 0; }