CSES - UKIEPC 2016 - Results
Submission details
Task:Elegant Showroom
Sender:KnowYourArchitecture
Submission time:2016-11-12 15:38:35 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.12 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.06 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.06 sdetails
#15ACCEPTED0.05 sdetails
#16ACCEPTED0.06 sdetails

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