[NOIP2003]乒乓球 - 代码 - 记录 - 坑点较多
重复两次计算,只有分值不同,建议写个函数,传入 11 和 21会更好点。
#include <iostream> #include <vector> #include <cstdlib> using namespace std; int main() { char ch; int x = 0, y = 0, a = 0, b = 0; vector<pair<int, int>> u, v; while(cin >> ch) { if(ch == 'E') { u.push_back({x, y}); v.push_back({a, b}); break; } if(ch == 'W') x++, a++; else y++, b++; if((x >= 11 || y >= 11) && abs(x - y) >= 2) { u.push_back({x, y}); x = y = 0; } if((a >= 21 || b >= 21) && abs(a - b) >= 2) { v.push_back({a, b}); a = b = 0; } } for(auto &e : u) { cout << e.first << ":" << e.second << endl; } cout << endl; for(auto &e : v) { cout << e.first << ":" << e.second << endl; } return 0; }
坑点1 : 0 : 0也要输出
坑点2 : 分差 >= 2 才能结束比赛,需要清楚乒乓球规则。