Task: | Elegant Showroom |
Sender: | KnowYourArchitecture |
Submission time: | 2016-11-12 15:38:35 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.05 s | details |
#4 | ACCEPTED | 0.06 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | ACCEPTED | 0.12 s | details |
#9 | ACCEPTED | 0.06 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.06 s | details |
#12 | ACCEPTED | 0.06 s | details |
#13 | ACCEPTED | 0.06 s | details |
#14 | ACCEPTED | 0.06 s | details |
#15 | ACCEPTED | 0.05 s | details |
#16 | ACCEPTED | 0.06 s | details |
Code
#include <iostream> #include <queue> #include <tuple> using namespace std; char map[402][402]; int dist[402][402]; bool vv[402][402]; typedef tuple<int,int,int> TI3; int main(){ int r,c; cin>>r>>c; for(int i=1;i<=r;++i)cin>>(map[i]+1); int x,y; cin>>x>>y; priority_queue<TI3> q; q.emplace(-1,x,y); for(int i=1;i<=r;++i){ for(int j=1;j<=c;++j){ if(map[i][j]!='#'){ dist[i][j]=-1e9; } } } int d; while(!q.empty()){ tie(d,x,y) = q.top(); q.pop(); if(dist[x][y]>d)continue; if(vv[x][y])continue; vv[x][y]=true; if(x==1||y==1||x==r||y==c){cout<<-d<<'\n';return 0;} #define dd(x,y) (d-(map[x][y]=='D'?0:1)) #define foo(x,y) if(dist[x][y]<dd(x,y))q.emplace(dd(x,y),x,y); foo(x+1,y) foo(x-1,y) foo(x,y+1) foo(x,y-1) } }
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 |