Submission #242012

# Submission time Handle Problem Language Result Execution time Memory
242012 2020-06-26T13:57:13 Z Autoratch Mecho (IOI09_mecho) C++14
19 / 100
444 ms 4600 KB
#include <bits/stdc++.h>
using namespace std;

const int N = 801;

int n,s,sx,sy,tx,ty;
char c[N][N];
int bee[N][N];
bool visited[N][N];
queue<pair<pair<int,int>,int> > qb,q;

void flybee()
{
    while(!qb.empty())
    {
        int t = qb.front().second,x = qb.front().first.first,y = qb.front().first.second;
        qb.pop();
        for(int i = -1;i <= 1;i++) for(int j = -1;j <= 1;j++)
        {
            if(i!=0 and j!=0) continue;
            if(i==0 and j==0) continue;
            int ai = x+i,aj = y+j;
            if(ai<1 or ai>n or aj<1 or aj>n) continue;
            if(c[ai][aj]=='D' or c[ai][aj]=='T') continue;
            if(visited[ai][aj]) continue;
            visited[ai][aj] = true;
            bee[ai][aj] = t+1;
            qb.push({{ai,aj},t+1});
        }
    }
}

bool solve(int x)
{
    for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++) visited[i][j] = false;
    while(!q.empty()) q.pop();
    q.push({{sx,sy},x});
    visited[sx][sy] = true;
    while(!q.empty())
    {
        int x = q.front().first.first,y = q.front().first.second,tm = q.front().second;
        q.pop();
        if(x==tx and y==ty) return true;
        for(int i = -1;i <= 1;i++) for(int j = -1;j <= 1;j++)
        {
            if(i!=0 and j!=0) continue;
            if(i==0 and j==0) continue;
            int ai = x+i,aj = y+j;
            if(ai<1 or ai>n or aj<1 or aj>n) continue;
            if(c[ai][aj]=='T') continue;
            if(visited[ai][aj]) continue;
            if(tm+1>=bee[ai][aj]*s) continue;
            q.push({{ai,aj},tm+1});
            visited[ai][aj] = true;
        }
    }
    return false;
}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin >> n >> s;
    for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++) cin >> c[i][j],bee[i][j] = INT_MAX;
    for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++) 
        if(c[i][j]=='H') qb.push({{i,j},0}),bee[i][j] = 0,visited[i][j] = true; 
        else if(c[i][j]=='M') sx = i,sy = j;
        else if(c[i][j]=='D') tx = i,ty = j;
    flybee();
    int l = 0,r = n*n;
    while(l<r)
    {
        int m = (l+r+1)/2;
        if(solve(m)) l = m;
        else r = m-1;
    }
    if(solve(l)) cout << l;
    else cout << "-1";
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Incorrect 5 ms 384 KB Output isn't correct
6 Incorrect 5 ms 384 KB Output isn't correct
7 Incorrect 200 ms 4344 KB Output isn't correct
8 Correct 5 ms 512 KB Output is correct
9 Incorrect 5 ms 384 KB Output isn't correct
10 Incorrect 5 ms 384 KB Output isn't correct
11 Incorrect 5 ms 384 KB Output isn't correct
12 Incorrect 5 ms 640 KB Output isn't correct
13 Incorrect 5 ms 640 KB Output isn't correct
14 Correct 5 ms 640 KB Output is correct
15 Correct 5 ms 384 KB Output is correct
16 Incorrect 5 ms 384 KB Output isn't correct
17 Correct 5 ms 512 KB Output is correct
18 Incorrect 5 ms 512 KB Output isn't correct
19 Correct 5 ms 512 KB Output is correct
20 Incorrect 5 ms 512 KB Output isn't correct
21 Correct 5 ms 512 KB Output is correct
22 Incorrect 5 ms 512 KB Output isn't correct
23 Correct 5 ms 640 KB Output is correct
24 Incorrect 5 ms 640 KB Output isn't correct
25 Correct 5 ms 640 KB Output is correct
26 Incorrect 5 ms 640 KB Output isn't correct
27 Correct 5 ms 640 KB Output is correct
28 Incorrect 6 ms 640 KB Output isn't correct
29 Correct 5 ms 768 KB Output is correct
30 Incorrect 6 ms 768 KB Output isn't correct
31 Correct 5 ms 640 KB Output is correct
32 Incorrect 5 ms 640 KB Output isn't correct
33 Correct 10 ms 1952 KB Output is correct
34 Incorrect 47 ms 2048 KB Output isn't correct
35 Incorrect 63 ms 2048 KB Output isn't correct
36 Correct 12 ms 2304 KB Output is correct
37 Incorrect 12 ms 2176 KB Output isn't correct
38 Incorrect 77 ms 2304 KB Output isn't correct
39 Correct 14 ms 2432 KB Output is correct
40 Incorrect 74 ms 2432 KB Output isn't correct
41 Incorrect 97 ms 2432 KB Output isn't correct
42 Correct 15 ms 2688 KB Output is correct
43 Incorrect 17 ms 2688 KB Output isn't correct
44 Incorrect 122 ms 2688 KB Output isn't correct
45 Correct 18 ms 2944 KB Output is correct
46 Incorrect 118 ms 2944 KB Output isn't correct
47 Incorrect 153 ms 2944 KB Output isn't correct
48 Correct 20 ms 3200 KB Output is correct
49 Incorrect 21 ms 3200 KB Output isn't correct
50 Incorrect 178 ms 3320 KB Output isn't correct
51 Correct 23 ms 3456 KB Output is correct
52 Incorrect 162 ms 3576 KB Output isn't correct
53 Incorrect 214 ms 3456 KB Output isn't correct
54 Correct 27 ms 3712 KB Output is correct
55 Incorrect 27 ms 3580 KB Output isn't correct
56 Incorrect 255 ms 3704 KB Output isn't correct
57 Correct 30 ms 3840 KB Output is correct
58 Incorrect 216 ms 3840 KB Output isn't correct
59 Incorrect 304 ms 3840 KB Output isn't correct
60 Correct 33 ms 4088 KB Output is correct
61 Incorrect 34 ms 4096 KB Output isn't correct
62 Incorrect 334 ms 4096 KB Output isn't correct
63 Incorrect 147 ms 4088 KB Output isn't correct
64 Incorrect 444 ms 4088 KB Output isn't correct
65 Incorrect 298 ms 4088 KB Output isn't correct
66 Incorrect 192 ms 4220 KB Output isn't correct
67 Correct 168 ms 4088 KB Output is correct
68 Incorrect 100 ms 4224 KB Output isn't correct
69 Incorrect 141 ms 4200 KB Output isn't correct
70 Incorrect 66 ms 4096 KB Output isn't correct
71 Incorrect 64 ms 4096 KB Output isn't correct
72 Incorrect 153 ms 4216 KB Output isn't correct
73 Incorrect 75 ms 4480 KB Output isn't correct
74 Incorrect 335 ms 4572 KB Output isn't correct
75 Incorrect 135 ms 4480 KB Output isn't correct
76 Incorrect 121 ms 4480 KB Output isn't correct
77 Incorrect 164 ms 4480 KB Output isn't correct
78 Correct 136 ms 4600 KB Output is correct
79 Incorrect 119 ms 4600 KB Output isn't correct
80 Incorrect 109 ms 4480 KB Output isn't correct
81 Incorrect 131 ms 4480 KB Output isn't correct
82 Incorrect 153 ms 4472 KB Output isn't correct
83 Incorrect 149 ms 4340 KB Output isn't correct
84 Incorrect 169 ms 4468 KB Output isn't correct
85 Incorrect 155 ms 4340 KB Output isn't correct
86 Incorrect 152 ms 4468 KB Output isn't correct
87 Incorrect 154 ms 4468 KB Output isn't correct
88 Incorrect 158 ms 4344 KB Output isn't correct
89 Incorrect 204 ms 4472 KB Output isn't correct
90 Incorrect 181 ms 4480 KB Output isn't correct
91 Incorrect 227 ms 4472 KB Output isn't correct
92 Incorrect 171 ms 4480 KB Output isn't correct