Submission #3433353


Source Code Expand

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <map>
#include <vector>
#include <math.h>
#include <algorithm>
#include <queue>
#include <set>
#include <tuple>
using namespace std;

#define rep(i,a) for(int i=0; i<a; i++)
#define rrep(i,a) for(int i=a; i>=0; i--)
#define rep1(i,a) for(int i=1; i<=a; i++)
#define cout1(a) cout << a << endl;
#define cout2(a,b) cout << a << " " << b << endl;
#define cout3(a,b,c) cout << a << " " << b << " " << c << endl;
#define cout4(a,b,c,d) cout << a << " " << b << " " << c << " " << d << endl;
#define mem(a,n) memset( a, n, sizeof(a))
#define all(a) a.begin(),a.end()

typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> V;
typedef vector<V> VV;
typedef vector<VV> VVV;
const int INF = 1e9;
const int MOD = 1e9+7;
const ll LLINF = 1e18;
static const double pi = 3.141592653589793;

int field[509][509];
bool visit[509][509];
int H, W;
pii S, G;

bool bfs(){
    
    int dh[] = { -1, 0, 1, 0};
    int dw[] = { 0, 1, 0, -1};
    
    mem(visit,false);
    visit[S.first][S.second]=true;
    vector<pii> now;
    now.push_back({S.first,S.second});
    
    while(now.size()){
        vector<pii> nxt;
        for(auto p:now){
            if(p.first==G.first && p.second==G.second)return true;
            int ph = p.first;
            int pw = p.second;
            rep(i,4){
                int nh = ph + dh[i];
                int nw = pw + dw[i];
                if(nh>=1 && nw>=1 && nh<=H && nw<=W){
                    if(visit[nh][nw]) continue;
                    visit[nh][nw]=true;
                    if(field[nh][nw]==2) field[nh][nw]=1;
                    if(field[nh][nw]==0){
                        nxt.push_back(make_pair(nh,nw));
                        
                    }
                }
            }
        }
        swap(now,nxt);
    }
    return false;
}

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    
    cin>>H>>W;
    
    rep1(i,H)rep1(j,W){
        char c; cin>>c;
        if(c=='#') field[i][j]=2;
        else if(c=='.') field[i][j]=0;
        else if(c=='s'){ S.first=i; S.second=j;
        }else{ G.first=i; G.second=j;}
    }
    
    field[S.first][S.second] = 0;
    field[G.first][G.second] = 0;
    
    rep(i,3){
        if(bfs()){
            cout1("YES");
            return 0;
        }else{
            rep1(k,H)rep1(j,W){
                if(field[k][j]==1) field[k][j]=0;
            }
        }
    }
    cout1("NO");
}

Submission Info

Submission Time
Task C - 器物損壊!高橋君
User mensan_fukuhara
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2570 Byte
Status AC
Exec Time 16 ms
Memory 1536 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 83
Set Name Test Cases
All 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt AC 1 ms 512 KB
00_min_02.txt AC 1 ms 512 KB
00_min_03.txt AC 1 ms 512 KB
00_min_04.txt AC 1 ms 512 KB
00_min_05.txt AC 1 ms 512 KB
00_min_06.txt AC 1 ms 512 KB
00_min_07.txt AC 1 ms 512 KB
00_min_08.txt AC 1 ms 512 KB
00_sample_01.txt AC 1 ms 512 KB
00_sample_02.txt AC 1 ms 512 KB
00_sample_03.txt AC 1 ms 512 KB
00_sample_04.txt AC 1 ms 512 KB
00_sample_05.txt AC 1 ms 512 KB
01_rnd_00.txt AC 5 ms 1536 KB
01_rnd_01.txt AC 5 ms 1536 KB
01_rnd_02.txt AC 8 ms 1536 KB
01_rnd_03.txt AC 8 ms 1536 KB
01_rnd_04.txt AC 7 ms 1536 KB
01_rnd_05.txt AC 6 ms 1536 KB
01_rnd_06.txt AC 10 ms 1536 KB
01_rnd_07.txt AC 9 ms 1536 KB
01_rnd_08.txt AC 5 ms 1536 KB
01_rnd_09.txt AC 6 ms 1536 KB
01_rnd_10.txt AC 16 ms 1536 KB
01_rnd_11.txt AC 5 ms 1536 KB
01_rnd_12.txt AC 9 ms 1536 KB
01_rnd_13.txt AC 5 ms 1536 KB
01_rnd_14.txt AC 8 ms 1536 KB
01_rnd_15.txt AC 9 ms 1536 KB
01_rnd_16.txt AC 5 ms 1536 KB
01_rnd_17.txt AC 14 ms 1536 KB
01_rnd_18.txt AC 5 ms 1536 KB
01_rnd_19.txt AC 6 ms 1536 KB
02_rndhard_00.txt AC 8 ms 1536 KB
02_rndhard_01.txt AC 8 ms 1536 KB
02_rndhard_02.txt AC 15 ms 1536 KB
02_rndhard_03.txt AC 14 ms 1536 KB
02_rndhard_04.txt AC 9 ms 1536 KB
02_rndhard_05.txt AC 11 ms 1536 KB
02_rndhard_06.txt AC 11 ms 1536 KB
02_rndhard_07.txt AC 8 ms 1536 KB
02_rndhard_08.txt AC 9 ms 1536 KB
02_rndhard_09.txt AC 9 ms 1536 KB
02_rndhard_10.txt AC 10 ms 1536 KB
02_rndhard_11.txt AC 9 ms 1536 KB
02_rndhard_12.txt AC 8 ms 1536 KB
02_rndhard_13.txt AC 8 ms 1536 KB
02_rndhard_14.txt AC 10 ms 1536 KB
02_rndhard_15.txt AC 10 ms 1536 KB
02_rndhard_16.txt AC 12 ms 1536 KB
02_rndhard_17.txt AC 12 ms 1536 KB
02_rndhard_18.txt AC 8 ms 1536 KB
02_rndhard_19.txt AC 7 ms 1536 KB
02_rndhard_20.txt AC 9 ms 1536 KB
02_rndhard_21.txt AC 9 ms 1536 KB
02_rndhard_22.txt AC 9 ms 1536 KB
02_rndhard_23.txt AC 8 ms 1536 KB
02_rndhard_24.txt AC 13 ms 1536 KB
02_rndhard_25.txt AC 9 ms 1536 KB
02_rndhard_26.txt AC 7 ms 1536 KB
02_rndhard_27.txt AC 7 ms 1536 KB
02_rndhard_28.txt AC 7 ms 1536 KB
02_rndhard_29.txt AC 7 ms 1536 KB
02_rndhard_30.txt AC 7 ms 1536 KB
02_rndhard_31.txt AC 7 ms 1536 KB
02_rndhard_32.txt AC 11 ms 1536 KB
02_rndhard_33.txt AC 10 ms 1536 KB
02_rndhard_34.txt AC 8 ms 1536 KB
02_rndhard_35.txt AC 10 ms 1536 KB
02_rndhard_36.txt AC 9 ms 1536 KB
02_rndhard_37.txt AC 9 ms 1536 KB
02_rndhard_38.txt AC 10 ms 1536 KB
02_rndhard_39.txt AC 10 ms 1536 KB
03_rndhardsmall_00.txt AC 1 ms 512 KB
03_rndhardsmall_01.txt AC 1 ms 512 KB
03_rndhardsmall_02.txt AC 1 ms 512 KB
03_rndhardsmall_03.txt AC 1 ms 512 KB
03_rndhardsmall_04.txt AC 1 ms 512 KB
03_rndhardsmall_05.txt AC 1 ms 512 KB
03_rndhardsmall_06.txt AC 1 ms 512 KB
03_rndhardsmall_07.txt AC 1 ms 512 KB
03_rndhardsmall_08.txt AC 1 ms 512 KB
03_rndhardsmall_09.txt AC 1 ms 512 KB