| ||||||||||
| 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 | |||||||||
Re:帮忙写一个?In Reply To:帮忙写一个? Posted by:hawk at 2004-04-19 18:48:33 我不太懂具体那些错误是怎么判断的,瞎写了一个。不过我自己的程序可是ac了:)
我是用cin输入待judge的东西,cout输出judge的结果,原来的测试数据都用文件读进来。
#include<fstream.h>
#include<iostream.h>
#include<string.h>
int picture[22][22];
int r,c;
int peri,perj;//person
int boxi,boxj;//box
int desi,desj;//destination
//int wall=0;
int space=-1;
int position[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
char pos[2][5]={"ENWS","enws"};
void main()
{
int i,j,k,p,q,b1,b2,s1,s2;
char st1[2000],st2[2000],ch;
ifstream inp("pushing.in");
ifstream oup("pushing.sol");
do
{
inp>>r>>c;//读地图
if(r==0&&c==0)break;
memset(picture,0,22*22*sizeof(int));
for(i=1;i<=r;i++)
for(j=1;j<=c;j++)
{
inp>>ch;
if(ch=='S'){peri=i;perj=j;picture[i][j]=space;}
else if(ch=='B'){boxi=i;boxj=j;picture[i][j]=space;}
else if(ch=='.')picture[i][j]=space;
else if(ch=='T'){desi=i;desj=j;picture[i][j]=space;}
}
cin.getline(st1,2000,'\n');if(!cin){cout<<"wa"<<endl;goto final;}
oup.getline(st2,2000,'\n');
if(strcmp(st1,st2)){cout<<"wa"<<endl;goto final;}
cin.getline(st1,2000,'\n');if(!cin){cout<<"wa"<<endl;goto final;}
oup.getline(st2,2000,'\n');
if(!strcmp(st2,"Impossible."))
if(strcmp(st1,st2)){cout<<"wa"<<endl;goto final;}else;
else
{
s1=b1=0;k=-1;
while(st1[++k]){if(st1[k]>='a'&&st1[k]<='z')s1++;if(st1[k]>='A'&&st1[k]<='Z')b1++;}
s2=b2=0;k=-1;
while(st2[++k]){if(st2[k]>='a'&&st2[k]<='z')s2++;if(st2[k]>='A'&&st2[k]<='Z')b2++;}
if(s1!=s2||b1!=b2){cout<<"wa"<<endl;goto final;}
k=-1;
while(st1[++k])
{
if(st1[k]>='a'&&st1[k]<='z')
{
for(i=0;i<4;i++)
if(st1[k]==pos[1][i])
{
p=peri+position[i][0];q=perj+position[i][1];
if(picture[p][q]!=space){cout<<"wa"<<endl;goto final;}
peri=p;perj=q;
break;
}
if(i==4){cout<<"wa"<<endl;goto final;}
}else if(st1[k]>='A'&&st1[k]<='Z')
{
for(i=0;i<4;i++)
if(st1[k]==pos[0][i])
{
p=peri+position[i][0];q=perj+position[i][1];
if(p!=boxi||q!=boxj){cout<<"wa"<<endl;goto final;}
peri=p;perj=q;
p+=position[i][0];q+=position[i][1];
if(picture[p][q]!=space){cout<<"wa"<<endl;goto final;}
boxi=p;boxj=q;
break;
}
if(i==4){cout<<"wa"<<endl;goto final;}
}else{cout<<"wa"<<endl;goto final;}
}
if(boxi!=desi||boxj!=desj){cout<<"wa"<<endl;goto final;}
}
cin.getline(st1,2000,'\n');if(!cin){cout<<"wa"<<endl;goto final;}
oup.getline(st2,2000,'\n');
if(strcmp(st1,st2)){cout<<"wa"<<endl;goto final;}
}while(true);
cin>>ch;
if(cin){cout<<"wa"<<endl;goto final;}
cout<<"ac"<<endl;
final:
inp.close();
oup.close();
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator