Submission details
Task:Elegant Showroom
Sender:KnowYourArchitecture
Submission time:2016-11-12 14:08:15 +0200
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#20.15 sdetails
#30.14 sdetails
#40.06 sdetails
#50.16 sdetails
#60.06 sdetails
#70.05 sdetails
#80.07 sdetails
#90.06 sdetails
#100.05 sdetails
#110.06 sdetails
#120.05 sdetails
#130.14 sdetails
#14ACCEPTED0.06 sdetails
#15ACCEPTED0.05 sdetails
#16ACCEPTED0.06 sdetails

Code

#include <iostream>
#include <string>
#include <vector>
#include <queue>

using namespace std;

typedef pair<int, int> P;
#define X first
#define Y second

bool visited[500][500];

int main() {
	int r, c;
	cin >> r >> c;
	vector<string> map(r);
	for (string &s : map)
		cin >> s;
	
	queue<pair<P, int>> q;
	int x, y;
	cin >> x >> y;
	q.push({P(x, y), 1});

	while (!q.empty()) {
		auto t = q.front(); q.pop();
		int x = t.first.X;
		int y = t.first.Y;
		int d = t.second;
		char r = map[x-1][y-1];
		
		//cout<<x<<" "<<y<<" "<<d<<" "<<r<<endl;
		
		if (r == '#')
			continue;
		
		if (r == 'D')
			d--;
		
		if (x == 1 || y == 1 || x == r || y == c) {
			cout << d << "\n";
			return 0;
		}
		
		if (visited[x][y])
			continue;
		visited[x][y] = true;
		
		q.push({P(x+1, y), d+1});
		q.push({P(x-1, y), d+1});
		q.push({P(x, y+1), d+1});
		q.push({P(x, y-1), d+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:

input
20 20
####################
#cccccccccccccccccc#
#c################c#
#c#cccccccccccccc#c#
...

correct output
179

user output
(empty)

Test 3

Verdict:

input
20 20
####################
#cccccccccccccccccc#
#cccccccccccccccccc#
#cccccccccccccccccc#
...

correct output
35

user output
(empty)

Test 4

Verdict:

input
400 400
DDD##D#DD##DDDDDDDD#DDDD###DDD...

correct output
63

user output
6

Test 5

Verdict:

input
400 400
#DDD###D#DD#DD#DD##DDD##D#DDD#...

correct output
11

user output
(empty)

Test 6

Verdict:

input
400 400
DDDDDDD#D#DDDD##D#DDDDDDD#DD##...

correct output
37

user output
55

Test 7

Verdict:

input
400 400
#######D#DDD#D##DD####DDDDDD##...

correct output
55

user output
73

Test 8

Verdict:

input
400 400
DD############################...

correct output
184

user output
135

Test 9

Verdict:

input
20 20
DDDDD#DDDDDDDDD##D#D
DccccD#DccccDcDD#c#D
Dc###DD#c#ccDcccc#DD
DccDc##DccccDcccc#DD
...

correct output
4

user output
5

Test 10

Verdict:

input
5 6
####D#
#DDDD#
#D##c#
#DDDc#
...

correct output
1

user output
2

Test 11

Verdict:

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
7

Test 12

Verdict:

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
4

Test 13

Verdict:

input
20 20
#D###DD##DDDDDD###DD
DDcDDccccDccDccDcc#D
DcD##ccc#cDcDccccDD#
DDcccc#Dc####c##ccDD
...

correct output
7

user output
(empty)

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