Author: loop3r
Date: 20260223
tag: 模拟
link: https://www.luogu.com.cn/problem/P1042问题描述
分析
按题意模拟,使用数组记录从最开始到结束时华华的得分情况,如果赢则记为
参考代码
cpp
#include <bits/stdc++.h>
using namespace std;
int f[2] = {11, 21};
int a[25 * 2500 + 10], n = 0;
int main() {
char c;
while (true) {
cin >> c;
if (c == 'E') break;
if (c == 'W') a[n++] = 1; // 华华赢
if (c == 'L') a[n++] = 0; // 华华输
}
for (int k = 0; k < 2; k++) {
int w = 0, l = 0;
for (int i = 0; i < n; i++) {
w += a[i];
l += 1 - a[i];
if ((max(w, l) >= f[k]) && abs(w - l) >= 2) {
cout << w << ":" << l << endl;
w = l = 0;
}
}
cout << w << ":" << l << endl;
cout << endl;
}
return 0;
}