1 条题解
-
0
// 包含C++所有常用头文件,比赛/刷题常用写法 #include<bits/stdc++.h> using namespace std; // 定义字符数组,存储所有比赛的胜负记录 W/L/E // 题目限制:每行最多25个字符,最多2500行,25*2500足够存储所有数据 char a [25*2500+5]; // 核心函数:根据 n 分制(11分 或 21分)计算并输出每局比分 void w(int n ){ // w 记录华华得分,l 记录对手得分 int w=0,l=0; // 遍历所有比赛记录,直到遇到结束标志 E for(int i=0;a[i]!='E';i++){ // 统计当前球的得分 if(a[i]=='W')w++; // W 代表华华得1分 else l++; // L 代表对手得1分 // 判断本局是否结束: // 条件1:一方得分 ≥ n // 条件2:双方分差 ≥ 2 if( (w>=n && w-l>=2) || (l>=n && l-w>=2) ){ // 输出本局最终比分 cout << w <<":"<<l<<endl; // 比分清零,开始下一局 w=l=0; } } // 遍历结束后,输出当前未结束的局的比分(即使没打完也要输出) cout << w <<":"<<l<<endl; } int main(){ // 循环读取输入的所有字符,存入数组 a // 无限循环,直到读到 E 停止 for(int i =0 ;1;i++){ cin >> a[i]; // 读取一个字符 if(a[i]=='E') break; // 读到 E 表示输入结束,退出循环 } // 第一部分:输出 11 分制的比赛结果 w(11); // 按照题目要求,两部分输出之间用一个空行隔开 cout << endl; // 第二部分:输出 21 分制的比赛结果 w(21); return 0; }
- 1
信息
- ID
- 4533
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 28
- 已通过
- 8
- 上传者
粤公网安备44195502000195号