// 大意就是输入 n, m,表示有 n 个人,每个人有 m 张牌,牌面从 1 到 m*n , 第二行输入 m 个数表示你自己手里有的牌和牌的大小
// 问利用你手里现有的这几张牌,你最多可以通过比大小稳赢多少次,你的比其他人的都大,你一定会赢
#include<stdio.h>
#include<string.h>
int main()
{
int a,b,num;
int r = 1;
while(scanf("%d %d",&a,&b) && (a||b))
{
int book[1100];
int count = 0;
int sum = 0;
memset(book,0,sizeof(book));
for(int i=0; i<b; i++)
{
scanf("%d",&num);
book[num] = 1;
}
for(int i=a*b; i>=1; i--)
{
if(book[i]==0) // 从最大的开始按顺序比较
sum++; // 如果这个数不是自己手里的就让别人手里的大牌数目加一 sum++
else // 如果这个牌是自己的
{
if(sum == 0) // 如果别人手里没有比这个牌大的大牌,
count++; // 一定赢的次数加一 count++
else
sum--; // 否则别人就出一张大牌 sum--
}
}
printf("Case %d: %d\n",r++,count);
}
}
Game Prediction POJ - 1323
最新推荐文章于 2018-07-19 11:41:33 发布