[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 才能结束比赛,需要清楚乒乓球规则。

全部评论

相关推荐

xxxxOxo:该催就催,想要你的不会因为催就挂,催了就挂的是因为本来就要挂你
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务