社区讨论

40pts 求调【悬棺】

P1042[NOIP 2003 普及组] 乒乓球参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mj02lval
此快照首次捕获于
2025/12/10 21:54
3 个月前
此快照最后确认于
2025/12/13 13:50
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
string s="";
struct node{//ans11[i].h表示11分制下第i局华华的得分;ans21[i].h表示21分制下第i局华华的得分
	int h,d;
}ans11[2510],ans21[2510];
void input(){
	while(1){//把很多行的输入字符串E之前的全都存在s里
		string x;
		cin>>x;
		bool f=0;
		for(int i=0;i<x.size();i++){
			if(x[i]=='E'){
				f=1;
				break;
			}
			s=s+x[i];
		}
		if(f)break;
	}
}
signed main(){
	input();
	int cnt=1;//cnt表示当前是第几局
	for(int i=0;i<s.size();i++){//先处理11分制下的得分
		if(s[i]=='W')ans11[cnt].h++;
		else ans11[cnt].d++;
		if(abs(ans11[cnt].h-ans11[cnt].d>=2)&&(ans11[cnt].h>=11||ans11[cnt].d>=11)){
			cnt++;
		}
	}
	int cnt1=1;//21分制下的同理
	for(int i=0;i<s.size();i++){
		if(s[i]=='W')ans21[cnt1].h++;
		else ans21[cnt1].d++;
		if(abs(ans21[cnt1].h-ans21[cnt1].d>=2)&&(ans21[cnt1].h>=21||ans21[cnt1].d>=21)){
			cnt1++;
		}
	}
	for(int i=1;i<=cnt;i++){
		cout<<ans11[i].h<<':'<<ans11[i].d<<endl;
	}
	cout<<endl;
	for(int i=1;i<=cnt1;i++){
		cout<<ans21[i].h<<':'<<ans21[i].d<<endl;
	}
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...