Submission #27475


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <stack>
using namespace std;

bool solve(int w, int h, const vector< string >& maze)
{
    vector< vector< int > > score(h, vector< int >(w, 3));
    pair< int, int > s, g;
    for (int y = 0; y < h; ++y)
    {
        for (int x = 0; x < w; ++x)
        {
            if (maze[y][x] == 's') s = pair< int, int >(x, y);
            if (maze[y][x] == 'g') g = pair< int, int >(x, y);
        }
    }
    stack< pair< int, int > > stack;
    stack.push(s);
    score[s.second][s.first] = 0;
    while (!stack.empty())
    {
        pair< int, int > p = stack.top();
        stack.pop();
        if (p == g && score[p.second][p.first] < 3) return true;
        vector< pair< int, int > > ps;
        ps.push_back(pair< int, int >(p.first, p.second-1));
        ps.push_back(pair< int, int >(p.first, p.second+1));
        ps.push_back(pair< int, int >(p.first-1, p.second));
        ps.push_back(pair< int, int >(p.first+1, p.second));
        for (vector< pair< int, int > >::iterator i = ps.begin();
             i != ps.end(); ++i)
        {
            if (i->first < 0|| w <= i->first || i->second < 0 || h <= i->second) continue;
            if (maze[i->second][i->first] == '#')
            {
                if (score[i->second][i->first] > score[p.second][p.first] + 1)
                {
                    score[i->second][i->first] = score[p.second][p.first] + 1;
                    stack.push(*i);
                }
            }
            else
            {
                if (score[i->second][i->first] > score[p.second][p.first])
                {
                    score[i->second][i->first] = score[p.second][p.first];
                    stack.push(*i);
                }
            }
        }
    }
    return false;
}

int main()
{
    int w, h;
    cin >> h >> w;
    string null;
    getline(cin, null);
    vector< string > maze(h);
    for (int i = 0; i < h; ++i) getline(cin, maze[i]);
    cout << (solve(w,h,maze) ? "YES" : "NO") << endl;
    return 0;
}

Submission Info

Submission Time
Task C - 器物損壊!高橋君
User notogawa
Language C++ (GCC 4.4.7)
Score 100
Code Size 2119 Byte
Status AC
Exec Time 105 ms
Memory 2680 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 22 ms 796 KB
00_min_02.txt AC 22 ms 772 KB
00_min_03.txt AC 21 ms 792 KB
00_min_04.txt AC 21 ms 792 KB
00_min_05.txt AC 21 ms 784 KB
00_min_06.txt AC 21 ms 792 KB
00_min_07.txt AC 21 ms 768 KB
00_min_08.txt AC 21 ms 792 KB
00_sample_01.txt AC 21 ms 760 KB
00_sample_02.txt AC 21 ms 796 KB
00_sample_03.txt AC 22 ms 792 KB
00_sample_04.txt AC 21 ms 820 KB
00_sample_05.txt AC 21 ms 788 KB
01_rnd_00.txt AC 36 ms 2040 KB
01_rnd_01.txt AC 91 ms 2672 KB
01_rnd_02.txt AC 50 ms 2172 KB
01_rnd_03.txt AC 73 ms 2548 KB
01_rnd_04.txt AC 66 ms 2552 KB
01_rnd_05.txt AC 37 ms 2044 KB
01_rnd_06.txt AC 38 ms 2048 KB
01_rnd_07.txt AC 78 ms 2296 KB
01_rnd_08.txt AC 36 ms 2040 KB
01_rnd_09.txt AC 35 ms 2032 KB
01_rnd_10.txt AC 105 ms 2044 KB
01_rnd_11.txt AC 36 ms 2032 KB
01_rnd_12.txt AC 46 ms 2172 KB
01_rnd_13.txt AC 55 ms 2304 KB
01_rnd_14.txt AC 46 ms 2036 KB
01_rnd_15.txt AC 43 ms 2048 KB
01_rnd_16.txt AC 38 ms 2048 KB
01_rnd_17.txt AC 91 ms 2036 KB
01_rnd_18.txt AC 35 ms 2040 KB
01_rnd_19.txt AC 62 ms 2680 KB
02_rndhard_00.txt AC 44 ms 2040 KB
02_rndhard_01.txt AC 42 ms 2052 KB
02_rndhard_02.txt AC 74 ms 2052 KB
02_rndhard_03.txt AC 96 ms 2048 KB
02_rndhard_04.txt AC 52 ms 2040 KB
02_rndhard_05.txt AC 60 ms 2040 KB
02_rndhard_06.txt AC 87 ms 2012 KB
02_rndhard_07.txt AC 44 ms 2036 KB
02_rndhard_08.txt AC 54 ms 2052 KB
02_rndhard_09.txt AC 57 ms 2044 KB
02_rndhard_10.txt AC 54 ms 2044 KB
02_rndhard_11.txt AC 56 ms 2036 KB
02_rndhard_12.txt AC 45 ms 2036 KB
02_rndhard_13.txt AC 46 ms 2028 KB
02_rndhard_14.txt AC 50 ms 2044 KB
02_rndhard_15.txt AC 56 ms 2048 KB
02_rndhard_16.txt AC 77 ms 2048 KB
02_rndhard_17.txt AC 67 ms 2048 KB
02_rndhard_18.txt AC 45 ms 2048 KB
02_rndhard_19.txt AC 43 ms 2036 KB
02_rndhard_20.txt AC 46 ms 2044 KB
02_rndhard_21.txt AC 50 ms 2036 KB
02_rndhard_22.txt AC 49 ms 2056 KB
02_rndhard_23.txt AC 47 ms 2036 KB
02_rndhard_24.txt AC 60 ms 2040 KB
02_rndhard_25.txt AC 50 ms 2040 KB
02_rndhard_26.txt AC 49 ms 2040 KB
02_rndhard_27.txt AC 39 ms 2000 KB
02_rndhard_28.txt AC 40 ms 2064 KB
02_rndhard_29.txt AC 40 ms 2036 KB
02_rndhard_30.txt AC 35 ms 2040 KB
02_rndhard_31.txt AC 35 ms 2040 KB
02_rndhard_32.txt AC 62 ms 2048 KB
02_rndhard_33.txt AC 56 ms 2056 KB
02_rndhard_34.txt AC 54 ms 2048 KB
02_rndhard_35.txt AC 57 ms 2036 KB
02_rndhard_36.txt AC 48 ms 2044 KB
02_rndhard_37.txt AC 55 ms 2044 KB
02_rndhard_38.txt AC 46 ms 2056 KB
02_rndhard_39.txt AC 52 ms 2044 KB
03_rndhardsmall_00.txt AC 21 ms 796 KB
03_rndhardsmall_01.txt AC 21 ms 796 KB
03_rndhardsmall_02.txt AC 21 ms 796 KB
03_rndhardsmall_03.txt AC 21 ms 788 KB
03_rndhardsmall_04.txt AC 21 ms 788 KB
03_rndhardsmall_05.txt AC 21 ms 820 KB
03_rndhardsmall_06.txt AC 21 ms 788 KB
03_rndhardsmall_07.txt AC 21 ms 792 KB
03_rndhardsmall_08.txt AC 21 ms 736 KB
03_rndhardsmall_09.txt AC 21 ms 796 KB