| ||||||||||
| 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:谁能告诉我为什么WA。。郁闷死了。。提供组数据也行啊。。In Reply To:谁能告诉我为什么WA。。郁闷死了。。提供组数据也行啊。。 Posted by:superszy at 2010-03-26 19:31:02 改动了一下,过了,你自己对比一下吧
#include <iostream>
#include <vector>
using namespace std;
char map[50][50];
bool flag[50][50];
int main()
{
int x , y , k;
int step=0 , loop = 0;
cin >> x>> y>>k;
while (x != 0)
{
memset( flag,false,sizeof(flag) );
for (int x1 =0 ; x1 < x ; x1++)
{
for (int y1 = 0; y1 < y ; y1++)
{
cin >> map[x1][y1];
}
}
int x2 = 0 , y2 = k-1;
while ( ( !( x2<0 || y2<0 || x2>=x || y2>=y ) ) && flag[x2][y2] == false)
{
flag[x2][y2] = true;
switch( map[x2][y2] )
{
case 'E':
{
y2++;
break;
}
case 'W':
{
y2--;
break;
}
case 'S':
{
x2++;
break;
}
case 'N':
{
x2--;
break;
}
default :
break;
}
step++;
}
if ( x2<0 || y2<0 || x2>=x || y2>=y)
{
memset( flag,false,sizeof(flag) );
}
else
{
if ( flag[x2][y2] == true )
{
memset( flag,false,sizeof(flag) );
while (flag[x2][y2] == false)
{
flag[x2][y2] = true;
switch( map[x2][y2] )
{
case 'E':
y2++;
break;
case 'W':
y2--;
break;
case 'S':
x2++;
break;
case 'N':
x2--;
break;
default :
break;
}
loop++;
}
}
}
if ( loop == 0 )
printf("%d step(s) to exit\n",step);
else
printf("%d step(s) before a loop of %d step(s)\n",step-loop,loop);
step = 0;
loop = 0;
cin >> x>> y>>k;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator