AT2141 [ARC062B] AtCoDeerくんと変なじゃんけん / AtCoDeer and Rock-Paper

题目传送门

因为布总能赢石头,所以这个题只有一个原则:能出布就出布

但要注意 $ x_i \le y_i $ 的限制,它说明出石头的数量要大于出布的数量,如果出布的数量等于石头的数量,就必须出石头满足题目要求。

代码如下:


#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
string s;
int main()
{
	int ans=0;
    int x=0;//石头的数量 
	int y=0;//布的数量
	cin>>s;
	int len=s.size();
	for(int i=0;i<len;++i)
	{
		if(x==y)//题目规定,石头的数量大于等于布的数量,这时只能出石头
		{
			x++;
			if(s[i]=='p') ans--; //如果对手出布就减一分
			continue;
		} 
		y++;
		if(s[i]=='g') ans++;//如果对手出石头就加一分 
	} 
	cout<<ans<<endl;
	return 0;
}

求过

posted @ 2022-02-02 14:48  exaqp  阅读(23)  评论(0编辑  收藏  举报