| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
WA炸 求解 代码凌乱勿喷#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int go[101],n,pawn[7];
bool missa[101],extra[101];
int a[1001],win,set[7];
void play()
{
int i,j;
i=-1;
set[1]=set[2]=set[3]=set[4]=set[5]=set[6]=1;
while(win==0)
{
for(j=1;j<=n;j++)
{
if(set[j]!=0)
{
if(pawn[j]+a[i+j]<=100)
{
pawn[j]+=a[i+j];
}
if(pawn[j]==100)
{
win=j;
return;
}
pawn[j]=go[pawn[j]];
if(pawn[j]==100)
{
win=j;
return;
}
}
else
{
set[j]=1;
continue;
}
if(set[j]==2)
{
i++;
if(pawn[j]+a[i+j]<=100)
{
pawn[j]+=a[i+j];
}
if(pawn[j]==100)
{
win=j;
return;
}
pawn[j]=go[pawn[j]];
if(pawn[j]==100)
{
win=j;
return;
}
set[j]=1;
}
if(missa[pawn[j]]==true)
set[j]=0;
else if(extra[pawn[j]]==true)
set[j]=2;
}
i+=n;
}
}
int main()
{
int p;
p=0;
scanf("%d",&a[p]);
while(a[p]!=0)
{
p++;
scanf("%d",&a[p]);
}
p++;
scanf("%d",&n);
while(n!=0)
{
int i;
for(i=0;i<=100;i++)
{
go[i]=i;
}
scanf("%d",&i);
scanf("%d",&go[i]);
while(i!=0||go[i]!=0)
{
scanf("%d",&i);
scanf("%d",&go[i]);
}
int b;
scanf("%d",&b);
while(b!=0)
{
if(b<0)
{
missa[-b]=true;
}
else
{
extra[b]=true;
}
scanf("%d",&b);
}
win=0;
play();
printf("%d\n",win);
memset(missa,0,sizeof(missa));
memset(extra,0,sizeof(extra));
scanf("%d",&n);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator