| 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 |
