Submission #163175
Source Code Expand
#include <map>
#include <queue>
#include <cstdio>
using namespace std;
typedef pair<int,int> pii;
typedef pair<pair<int,int>,int> ppiii;
int M[1001][1001];
int D[4][2]={{-1,0},{0,-1},{0,1},{1,0}};
map<pii,pii>back;
void backtrack(int d,pii cur){
if(back[cur]==cur){
printf("%d\n",d);
}else{
backtrack(d+1,back[cur]);
}
//printf("%d %d\n",cur.first,cur.second);
}
char s;
int main(){
int n,m,i,j,x,y;
pii start,goal;
scanf("%d%d%d%d%d%d",&m,&n,&i,&j,&x,&y);getchar();
start=make_pair(i-1,j-1);
goal=make_pair(x-1,y-1);
for(i=0;i<m;getchar(),i++)for(j=0;j<n;j++){
s=getchar();
switch(s){
case '.':M[i][j]=0;break;
case '#':M[i][j]=1;break;
}
}
vector<pii> v;
queue<ppiii> q;
map<pii,int>visit;
v.push_back(start);
q.push(make_pair(start,0));
visit[start]=0;
back[start]=start;
for(;!q.empty();){
ppiii cur=q.front();q.pop();
for(i=0;i<4;i++){
int nexty=cur.first.first+D[i][0];
int nextx=cur.first.second+D[i][1];
pii next=make_pair(nexty,nextx);
if(
0<=nexty&&nexty<m &&
0<=nextx&&nextx<n &&
!M[nexty][nextx] &&
visit.find(next)==visit.end()
){
v.push_back(next);
q.push(make_pair(next,cur.second+1));
visit[next]=cur.second+1;
back[next]=cur.first;
if(next==goal){
backtrack(0,goal);
return 0;
}
}
}
}
//queue exhausted
puts("Fail");
}
Submission Info
Submission Time
2014-04-20 07:30:33+0900
Task
C - 幅優先探索
User
leafmoon
Language
C++ (G++ 4.6.4)
Score
100
Code Size
1414 Byte
Status
AC
Exec Time
31 ms
Memory
1432 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:24:41: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
100 / 100
Status
Set Name
Test Cases
Sample
subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
All
subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name
Status
Exec Time
Memory
subtask0_sample01.txt
AC
20 ms
924 KB
subtask0_sample02.txt
AC
21 ms
800 KB
subtask0_sample03.txt
AC
24 ms
1308 KB
subtask1_01.txt
AC
23 ms
1184 KB
subtask1_02.txt
AC
23 ms
1184 KB
subtask1_03.txt
AC
21 ms
1176 KB
subtask1_04.txt
AC
23 ms
1432 KB
subtask1_05.txt
AC
22 ms
1184 KB
subtask1_06.txt
AC
23 ms
1316 KB
subtask1_07.txt
AC
21 ms
932 KB
subtask1_08.txt
AC
21 ms
1060 KB
subtask1_09.txt
AC
22 ms
1184 KB
subtask1_10.txt
AC
31 ms
1048 KB
subtask1_11.txt
AC
24 ms
1188 KB
subtask1_12.txt
AC
23 ms
1312 KB
subtask1_13.txt
AC
24 ms
1064 KB
subtask1_14.txt
AC
20 ms
1052 KB
subtask1_15.txt
AC
22 ms
1308 KB
subtask1_16.txt
AC
22 ms
1184 KB
subtask1_17.txt
AC
23 ms
1312 KB
subtask1_18.txt
AC
23 ms
1312 KB
subtask1_19.txt
AC
22 ms
1100 KB
subtask1_20.txt
AC
21 ms
1184 KB
subtask1_21.txt
AC
22 ms
1312 KB
subtask1_22.txt
AC
23 ms
1188 KB