Task: | Elegant Showroom |
Sender: | Game of Nolife |
Submission time: | 2016-11-12 14:03:59 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | ACCEPTED | 0.06 s | details |
#4 | ACCEPTED | 0.07 s | details |
#5 | ACCEPTED | 0.06 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.05 s | details |
#8 | ACCEPTED | 0.07 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.05 s | details |
#12 | ACCEPTED | 0.06 s | details |
#13 | ACCEPTED | 0.05 s | details |
#14 | ACCEPTED | 0.05 s | details |
#15 | ACCEPTED | 0.05 s | details |
#16 | ACCEPTED | 0.06 s | details |
Code
#include <bits/stdc++.h> #define F first #define S second #define X real() #define Y imag() using namespace std; typedef long long ll; typedef long double ld; string s[444]; int dt[444][444]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int r,c; cin>>r>>c; for (int i=0;i<r;i++){ cin>>s[i]; } int x,y; cin>>x>>y; x--; y--; for (int i=0;i<r;i++){ for (int ii=0;ii<c;ii++){ dt[i][ii]=1e8; } } deque<pair<int, int> > bfs; bfs.push_back({x, y}); dt[x][y]=1; while (!bfs.empty()){ auto t=bfs.front(); bfs.pop_front(); for (int i=-1;i<=1;i++){ for (int ii=-1;ii<=1;ii++){ if ((i==0)^(ii==0)){ int nx=t.F+i; int ny=t.S+ii; if (nx<0||ny<0||nx>=r||ny>c) continue; if (s[nx][ny]=='c'){ if (dt[nx][ny]==0||dt[t.F][t.S]+1<dt[nx][ny]){ dt[nx][ny]=dt[t.F][t.S]+1; bfs.push_back({nx, ny}); } } else if(s[nx][ny]=='D'){ if (dt[nx][ny]==0||dt[t.F][t.S]<dt[nx][ny]){ dt[nx][ny]=dt[t.F][t.S]; bfs.push_front({nx, ny}); } } } } } } int v=1e9; for (int i=0;i<r;i++){ if (s[i][0]=='D') v=min(v, dt[i][0]); if (s[i][c-1]=='D') v=min(v, dt[i][c-1]); } for (int i=0;i<c;i++){ if (s[0][i]=='D') v=min(v, dt[0][i]); if (s[r-1][i]=='D') v=min(v, dt[r-1][i]); } cout<<v<<endl; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
20 20 DDDDDDDDDDD##DD#DD#D DDccccc#c##c##cDccDD Dc#c#c#cc#ccc#c#Dc#D DccDc#Dc####ccc#c#DD ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 2
Verdict: ACCEPTED
input |
---|
20 20 #################### #cccccccccccccccccc# #c################c# #c#cccccccccccccc#c# ... |
correct output |
---|
179 |
user output |
---|
179 |
Test 3
Verdict: ACCEPTED
input |
---|
20 20 #################### #cccccccccccccccccc# #cccccccccccccccccc# #cccccccccccccccccc# ... |
correct output |
---|
35 |
user output |
---|
35 |
Test 4
Verdict: ACCEPTED
input |
---|
400 400 DDD##D#DD##DDDDDDDD#DDDD###DDD... |
correct output |
---|
63 |
user output |
---|
63 |
Test 5
Verdict: ACCEPTED
input |
---|
400 400 #DDD###D#DD#DD#DD##DDD##D#DDD#... |
correct output |
---|
11 |
user output |
---|
11 |
Test 6
Verdict: ACCEPTED
input |
---|
400 400 DDDDDDD#D#DDDD##D#DDDDDDD#DD##... |
correct output |
---|
37 |
user output |
---|
37 |
Test 7
Verdict: ACCEPTED
input |
---|
400 400 #######D#DDD#D##DD####DDDDDD##... |
correct output |
---|
55 |
user output |
---|
55 |
Test 8
Verdict: ACCEPTED
input |
---|
400 400 DD############################... |
correct output |
---|
184 |
user output |
---|
184 |
Test 9
Verdict: ACCEPTED
input |
---|
20 20 DDDDD#DDDDDDDDD##D#D DccccD#DccccDcDD#c#D Dc###DD#c#ccDcccc#DD DccDc##DccccDcccc#DD ... |
correct output |
---|
4 |
user output |
---|
4 |
Test 10
Verdict: ACCEPTED
input |
---|
5 6 ####D# #DDDD# #D##c# #DDDc# ... |
correct output |
---|
1 |
user output |
---|
1 |
Test 11
Verdict: ACCEPTED
input |
---|
20 20 DDDDDD#DDDDDD#D#D#D# Dc#cccccccDcc#ccccDD DDcD#c##cDcc####Dc#D D#Dcccc#D##ccc#c#D#D ... |
correct output |
---|
5 |
user output |
---|
5 |
Test 12
Verdict: ACCEPTED
input |
---|
20 20 DDD#DDDD#DDDD#DDDD#D Dc##DDccDccD#DDcDDDD DcDDccc#cc#ccc##D##D DcccD#cDc##Dcccc##D# ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 13
Verdict: ACCEPTED
input |
---|
20 20 #D###DD##DDDDDD###DD DDcDDccccDccDccDcc#D DcD##ccc#cDcDccccDD# DDcccc#Dc####c##ccDD ... |
correct output |
---|
7 |
user output |
---|
7 |
Test 14
Verdict: ACCEPTED
input |
---|
6 7 ####### #ccc#cD #c#c#c# #c#c#c# ... |
correct output |
---|
14 |
user output |
---|
14 |
Test 15
Verdict: ACCEPTED
input |
---|
5 5 DDDDD DDDDD DDcDD DDDDD ... |
correct output |
---|
1 |
user output |
---|
1 |
Test 16
Verdict: ACCEPTED
input |
---|
3 3 ### #cD ### 2 2 |
correct output |
---|
1 |
user output |
---|
1 |