您的位置:首页 > 其它

HDU 4371 Alice And Bob

2012-09-05 21:50 375 查看
#include<stdio.h>

#include<memory.h>

#define M 1000005

int i,j,k,t,m,f;

long long n,d[105],s[M];

int cmp(const void *a,const void *b){

return *(long long *)a>*(long long *)b ? 1:-1;

}

int main()

{

while(scanf("%d",&t)!=EOF)

{

for(i=1;i<=t;i++){

memset(s,0,sizeof(s));

scanf("%I64d %d",&n,&m);

for(j=1;j<=m;j++)

scanf("%I64d",&d[j]);

qsort(d+1,m,sizeof(d[1]),cmp);

s[1]=0; s[2]=0;

for(j=1;j<=m;j++){

if(s[1]+d[j]<=n) { s[2]=s[1]+d[j]; break; }

}

if(s[2]>0){

k=3;

f=0;

while(f==0){

for(j=1;j<=m;j++){

if(s[k-1]+d[j]>s[k-2] && s[k-1]+d[j]<=n)

s[k]=s[k-1]+d[j];

break;

}

if(s[k]==0){

for(j=1;j<=m;j++){

if(s[k-1]-d[j]>s[k-2] && s[k-1]-d[j]<=n)

s[k]=s[k-1]-d[j];

break;

}

}

if(s[k]==0) f=1;

else k++;

}

if(k%2==0) printf("Case #%d: Alice\n",i);

else printf("Case #%d: Bob\n",i);

}

else printf("Case #%d: Alice\n",i);

}

}

system("pasue");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: