poj1323

题目大意:n个人在玩牌,每个人有m张牌,于是就有n*m张牌(每张牌都有一个值,介于1到n*m之间,不重复),然后进行m轮游戏,每轮每个人都出一张牌,牌最大的那个人就赢了,然后给出n和m,以及你的m张牌,问你最多能赢几轮?

#include <iostream>
using namespace std;
int a[1010];
int n,m;
int hava(int i)
{
int j;
for(j=0;j<m;j++)
if(a[j]==i) return 1;
return 0;//这里千万要注意,不可写为else return 0,若这样写,编译器把if,else视为一个快语句。切记……(这一点浪费了20分钟,唉,基础才是王道啊)
}
int main()
{
int t=1;
int i;
while(true)
{
cin>>n>>m;
if(n==0 && m==0)break;
for(i=0;i<m;i++)
cin>>a[i];
int max=0;
int count=0;
for(i=n*m;i>=1;i--)
{
if(hava(i)==1) 
count++;
else count--;
if (max<count)
max=count;

}
cout<<"Case "<<t<<": "<<max<<endl;
t++;
}
return 0;
}

  

posted on 2012-05-25 01:49  矮人狙击手!  阅读(307)  评论(0编辑  收藏  举报

导航