题目:

乒乓球

题目解析

看注释

代码

#include <bits/stdc++.h>
using namespace std;

char c;
int record[62530], idx;
// 数组要存下所有字符才行 
int w, l, fs[2] = {11, 21};
// 得分已经两个赛制的分值 

int main() {
	while (true) {
		c = cin.get();
		if (c == 'E') {
			break;
		} // 如果读取到结束符'E'结束 
		if(c == 'W'){  
			record[idx++] = 0;
			// 上述代码相当于
			/*
				record[idx] = 0;
				idx++; 
			*/ 
		} else if (c == 'L'){
			record[idx++] = 1;
		} 同上 
	}
	for (int i = 0; i <= 1; i++) { // 重复两种赛制 
		for (int j = 0; j < idx; j++) { // 遍历 
			if (record[j] == 0) {
				w++;
			}
			if (record[j] == 1) {
				l++;
			} 
			if (abs(w - l) >= 2) { // 如果两人分数差值不超过2 
				if (w >= fs[i] || l >= fs[i]) { // 如果两人都超过了此赛制的分数 
					printf("%d:%d\n", w, l); // 输出 
					w = l = 0; // 制零 
				}
			}
		}
		printf("%d:%d\n\n", w, l); // 不管比赛有无结束都要输出 
		w = l = 0; // 制零! 
	}
	return 0;
}