Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## 郁闷啊，边缘测试都能过，为什么还是WA啊，请大神们看看或者给提供个测试数据！

Posted by qihongqi at 2012-11-27 11:38:46 on Problem 1573
```#include <iostream>
#include <cstring>
using namespace std;

char grid[12][12];
int map[12][12];
void work(int &r,int &c)
{
if(grid[r][c]=='E') c++;
else if(grid[r][c]=='S') r++;
else if(grid[r][c]=='N') r--;
else c--;
}
int main()
{
memset(grid,0,sizeof(grid));
memset(map,0,sizeof(map));
int rows,columns,entry;
int i,j;
int r,c;
int steps;
int flag=0;
int st1,st2;
int tr,tc,ttc;
while(cin>>rows>>columns>>entry)
{
if(rows==0&&columns==0&&entry==0) break;
steps=0;
c=entry-1;
r=0;
tr=0;tc=entry-1;
ttc=entry-1;
for(i=0;i<rows;i++)
for(j=0;j<columns;j++)
cin>>grid[i][j];
while(r>=0&&c>=0)
{
work(r,c);
steps++;
if(steps>rows*columns)
{
steps=0;
st1=0;st2=0;
flag=1;
break;
}
}
if(flag){
while(map[tr][tc]==0)
{
st1++;
map[tr][tc]=1;
work(tr,tc);
if(map[tr][tc]==1) break;
}
int ttr=0;
while(ttr!=tr||ttc!=tc)
{
st2++;
work(ttr,ttc);
}
}
memset(grid,0,sizeof(grid));
memset(map,0,sizeof(map));
if(flag)
{
cout<<st2<<" step(s) before a loop of "<<(st1-st2)<<" step(s)"<<endl;
}
else
cout<<steps<<" step(s) to exit"<<endl;
}
return 0;
}
```

Followed by: