답안 #1091825

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1091825 2024-09-22T09:59:21 Z Jakub_Wozniak Tracks in the Snow (BOI13_tracks) C++14
84.6875 / 100
2000 ms 80056 KB
#include <bits/stdc++.h>
using namespace std;
const int maxn = 4009;
typedef long long ll;
int N , M;
string s[maxn];
int a , b , c;
vector <pair<int,int>> R;
bool vis[maxn][maxn];
int MAXI = 0;

void pr()
{
    R.push_back({-1,0});
    R.push_back({1,0});
    R.push_back({0,1});
    R.push_back({0,-1});
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> N >> M;
    for(int i = 0 ; i <= M+1 ; i++ )s[0] += '.';
    for(int i = 0 ; i <= M+1 ; i++ )s[N+1] += '.';

    pr();
    for(int i = 1 ; i <= N  ;i++)
    {
        cin >> s[i];
        s[i] = '.'+s[i]+'.';
    }

    priority_queue <pair<int,int>> q;
    pair<int,int> DS;
    q.push({-1,1*maxn+1});
    int i , j;
    while(!q.empty())
    {
        DS = q.top();
        c = -DS.first; 
        i = DS.second/maxn;
        j = DS.second%maxn;
        q.pop();
        if(vis[i][j] == 1){continue;}
        vis[i][j] = 1;
        MAXI = max(MAXI , c);

        
        for(int k = 0 ; k < R.size() ; k++)
        {
            a = i+R[k].first;
            b = j+R[k].second;
            if(s[a][b] == '.' || vis[a][b] == 1)continue;
            
            if(s[a][b] == s[i][j]){ q.push({-c,a*maxn+b});}
            else {q.push({-(c+1),a*maxn+b});}
        }
    }

    cout << MAXI << '\n';


    return 0;
}

Compilation message

tracks.cpp: In function 'int main()':
tracks.cpp:51:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         for(int k = 0 ; k < R.size() ; k++)
      |                         ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 50 ms 3416 KB Output is correct
2 Correct 0 ms 600 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 27 ms 3540 KB Output is correct
5 Correct 4 ms 1880 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 1 ms 860 KB Output is correct
9 Correct 1 ms 856 KB Output is correct
10 Correct 4 ms 1628 KB Output is correct
11 Correct 7 ms 1628 KB Output is correct
12 Correct 18 ms 1884 KB Output is correct
13 Correct 4 ms 1884 KB Output is correct
14 Correct 4 ms 1884 KB Output is correct
15 Correct 39 ms 3420 KB Output is correct
16 Correct 51 ms 3416 KB Output is correct
17 Correct 19 ms 3164 KB Output is correct
18 Correct 28 ms 3536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 15452 KB Output is correct
2 Correct 112 ms 10076 KB Output is correct
3 Correct 333 ms 63140 KB Output is correct
4 Correct 96 ms 19032 KB Output is correct
5 Correct 134 ms 38776 KB Output is correct
6 Execution timed out 2102 ms 79688 KB Time limit exceeded
7 Correct 7 ms 16216 KB Output is correct
8 Correct 6 ms 15452 KB Output is correct
9 Correct 5 ms 860 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 6 ms 15920 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 108 ms 10076 KB Output is correct
14 Correct 61 ms 6748 KB Output is correct
15 Correct 12 ms 7260 KB Output is correct
16 Correct 59 ms 3932 KB Output is correct
17 Correct 309 ms 20588 KB Output is correct
18 Correct 60 ms 20056 KB Output is correct
19 Correct 94 ms 19032 KB Output is correct
20 Correct 85 ms 17496 KB Output is correct
21 Correct 203 ms 40168 KB Output is correct
22 Correct 136 ms 38712 KB Output is correct
23 Correct 613 ms 33108 KB Output is correct
24 Correct 107 ms 39504 KB Output is correct
25 Correct 313 ms 63104 KB Output is correct
26 Correct 1470 ms 50288 KB Output is correct
27 Execution timed out 2053 ms 65484 KB Time limit exceeded
28 Execution timed out 2007 ms 79852 KB Time limit exceeded
29 Execution timed out 2029 ms 80056 KB Time limit exceeded
30 Execution timed out 2085 ms 78384 KB Time limit exceeded
31 Execution timed out 2033 ms 44236 KB Time limit exceeded
32 Execution timed out 2041 ms 65408 KB Time limit exceeded