蓝桥杯 ADV-236 试题 算法提高 林丹大战李宗伟

资源限制

时间限制:1.0s   内存限制:256.0MB

问题描述

  我们用0表示林丹,1表示李宗伟。

  输入数据中每行会给出一个0或者1,表示对应选手得1分。

  当一方得分达到21分时,只要该方与对方分差超过1分,该方即胜出。

  你需要输出最后获胜选手的代号。

输入格式

  若干行每行一个0或者1。

输出格式

  一行一个0或者1表示胜者。

样例输入

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

样例输出

1

数据规模和约定

  输入数据可能存在多余信息,选手需要在第一次出现胜者时马上输出。
  读入可以使用while (cin >> x){},该代码块会在读入所有数据后执行完毕。

分析:题目不难,就是有点小细节,计数表示为>=21,然后算出结果要立即break

#include <iostream>
using namespace std;
int main()
{
	int m,sum1=0,sum2=0;
	while(cin>>m)
	{
		if(m==0)
			sum1++;
		else 
			sum2++;
		
		if(sum1>=21&&sum1-sum2>1)
		{
			cout<<0<<endl;
			break;
		}	
		if(sum2>=21&&sum2-sum1>1)
		{
			cout<<1<<endl;
			break;
		}
			
	}
	
	return 0;
}
发布了80 篇原创文章 · 获赞 3 · 访问量 922

猜你喜欢

转载自blog.csdn.net/qq_40570410/article/details/104848271