답안 #916200

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
916200 2024-01-25T13:11:03 Z berr Maze (JOI23_ho_t3) C++17
0 / 100
27 ms 32164 KB
#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9+7;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int r, c, n; cin >> c>> r >> n;

    array<int, 2> s, g;

    cin >> s[0] >> s[1];
    cin >> g[0] >> g[1];

    s[0]--; s[1]--;
    g[0]--; g[1]--;

    vector<string> a(c);

    for(auto &i: a){
        cin >> i;
    }


    int ans = 0;
    queue<array<int, 2>> q[max(r, c) / n +2];
    int pos = 0;

    q[0].push(s);

    queue<array<int, 2>> sinir;
    queue<array<int, 3>>sinir2;
    int of = 500;
    auto check =[&](int x, int y, int z){
        if(x<0 || y<0) return 1;
        if(x>=c || y>=r) return 1;
        if(a[x][y]=='.'){
            q[z].push({x, y});
            return 1;
        }
        return 0;
    
    };

   // c = column
    vector vis(c, vector(r, 0));
    vector vis2(c, vector(r, 0));
    vector vis3(c, vector(r, 0));
    int anss = -1;
    while(pos <max(r, c) / n +2 && anss==-1){   
        if(q[pos].size()==0 ){
            pos++;
            if(pos == (max(r, c)/n+2)) break;
            
            while(sinir.size()){
                auto [x, y] = sinir.front();
                vis[x][y] = 0;
                sinir2.push({x, y, 0});
                q[pos].push({x, y});
                sinir.pop();
                for(int i=1; i<=n; i++){
                    if(x-i<0) break;
                    if(vis[x-i][y]) break;
                    if(vis2[x-i][y]) break;
                    a[x-i][y] = '.';
                    vis2[x-i][y] = 1;
                    sinir2.push({x-i, y, (i==n)});
                }
                for(int i=1; i<=n; i++){
                    if(x+i>=c) break;
                    if(vis[x+i][y]) break;
                    if(vis2[x+i][y]) break;
                    a[x+i][y] = '.';
                    vis2[x+i][y] = 1;
                    sinir2.push({x+i, y, (i==n)});
                }
            }

            while(sinir2.size()){
                auto [x, y, z] = sinir2.front();
                vis[x][y] = 0;
                sinir2.pop();
                for(int i=1; i<=n-z; i++){
                    if(y-i<0) break;
                    if(vis[x][y-i]) break;
                    if(vis3[x][y-i]) break;
                    a[x][y-i] = '.';
                    vis3[x][y-i] = 1;
                }
                for(int i=1; i<=n-z; i++){
                    if(y+i>=r) break;
                    if(vis[x][y+i]) break;
                    if(vis3[x][y+i]) break;

                    a[x][y+i] = '.';
                    vis3[x][y+i] = 1;
                }
            }
        }
        else{
            while(q[pos].size()){
                auto [x, y] = q[pos].front();
                q[pos].pop();
                int ans = 0;
                if(vis[x][y]) continue;

                vis[x][y] = 1;
                if(x==g[0] && y == g[1]&& anss==-1){
                    anss = pos;
                } 

                ans += check(x-1, y, pos);
                ans += check(x+1, y, pos);
                ans += check(x, y-1, pos);
                ans += check(x, y+1, pos);
                if(ans!=4){
                    sinir.push({x, y});
                }
            }
        }


    }

    cout << anss;

}   

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:27:9: warning: unused variable 'ans' [-Wunused-variable]
   27 |     int ans = 0;
      |         ^~~
Main.cpp:35:9: warning: unused variable 'of' [-Wunused-variable]
   35 |     int of = 500;
      |         ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 1116 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 344 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 7 ms 1492 KB Output is correct
20 Correct 27 ms 32164 KB Output is correct
21 Correct 3 ms 1372 KB Output is correct
22 Correct 7 ms 1368 KB Output is correct
23 Incorrect 6 ms 1372 KB Output isn't correct
24 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 344 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Incorrect 1 ms 604 KB Output isn't correct
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 344 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 1 ms 348 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Incorrect 1 ms 856 KB Output isn't correct
26 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 344 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Incorrect 1 ms 604 KB Output isn't correct
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 344 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Incorrect 1 ms 604 KB Output isn't correct
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 1116 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 344 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 7 ms 1492 KB Output is correct
20 Correct 27 ms 32164 KB Output is correct
21 Correct 3 ms 1372 KB Output is correct
22 Correct 7 ms 1368 KB Output is correct
23 Incorrect 6 ms 1372 KB Output isn't correct
24 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 1116 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 344 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 7 ms 1492 KB Output is correct
20 Correct 27 ms 32164 KB Output is correct
21 Correct 3 ms 1372 KB Output is correct
22 Correct 7 ms 1368 KB Output is correct
23 Incorrect 6 ms 1372 KB Output isn't correct
24 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 1116 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 344 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 7 ms 1492 KB Output is correct
20 Correct 27 ms 32164 KB Output is correct
21 Correct 3 ms 1372 KB Output is correct
22 Correct 7 ms 1368 KB Output is correct
23 Incorrect 6 ms 1372 KB Output isn't correct
24 Halted 0 ms 0 KB -