답안 #1091828

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1091828 2024-09-22T10:03:32 Z Jakub_Wozniak Tracks in the Snow (BOI13_tracks) C++14
91.25 / 100
2000 ms 79880 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;
    vis[1][1] = 1;

    while(!q.empty())
    {
        DS = q.top();
        c = -DS.first; 
        i = DS.second/maxn;
        j = DS.second%maxn;
        q.pop();
        
        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;
            vis[a][b] = 1;
            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:52: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]
   52 |         for(int k = 0 ; k < R.size() ; k++)
      |                         ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 3164 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 16 ms 3284 KB Output is correct
5 Correct 4 ms 1884 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 0 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 3 ms 1628 KB Output is correct
11 Correct 5 ms 1372 KB Output is correct
12 Correct 10 ms 1876 KB Output is correct
13 Correct 4 ms 1884 KB Output is correct
14 Correct 3 ms 1884 KB Output is correct
15 Correct 21 ms 3164 KB Output is correct
16 Correct 28 ms 3164 KB Output is correct
17 Correct 15 ms 3164 KB Output is correct
18 Correct 17 ms 3288 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 15620 KB Output is correct
2 Correct 80 ms 10076 KB Output is correct
3 Correct 240 ms 63312 KB Output is correct
4 Correct 89 ms 19028 KB Output is correct
5 Correct 134 ms 38632 KB Output is correct
6 Execution timed out 2056 ms 79880 KB Time limit exceeded
7 Correct 7 ms 16216 KB Output is correct
8 Correct 7 ms 15448 KB Output is correct
9 Correct 3 ms 860 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 7 ms 15964 KB Output is correct
12 Correct 1 ms 1116 KB Output is correct
13 Correct 74 ms 10076 KB Output is correct
14 Correct 47 ms 6744 KB Output is correct
15 Correct 12 ms 7360 KB Output is correct
16 Correct 39 ms 3932 KB Output is correct
17 Correct 204 ms 20536 KB Output is correct
18 Correct 48 ms 20228 KB Output is correct
19 Correct 104 ms 19036 KB Output is correct
20 Correct 61 ms 17448 KB Output is correct
21 Correct 133 ms 40016 KB Output is correct
22 Correct 118 ms 38844 KB Output is correct
23 Correct 369 ms 33124 KB Output is correct
24 Correct 95 ms 39508 KB Output is correct
25 Correct 196 ms 63316 KB Output is correct
26 Correct 920 ms 50772 KB Output is correct
27 Correct 1588 ms 65488 KB Output is correct
28 Execution timed out 2073 ms 79796 KB Time limit exceeded
29 Execution timed out 2066 ms 71676 KB Time limit exceeded
30 Execution timed out 2005 ms 70280 KB Time limit exceeded
31 Correct 1334 ms 43724 KB Output is correct
32 Correct 1208 ms 64320 KB Output is correct