Submission #1370281

#TimeUsernameProblemLanguageResultExecution timeMemory
1370281eyadoozZoo (COCI19_zoo)C++20
0 / 110
0 ms344 KiB
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define endl '\n'
#define int long long

int ne[4]={0, 0, 1, -1}, nex[4]={1, -1, 0, 0};
main()
{
    cin.tie(0) -> sync_with_stdio(0);

    int n, m;
    cin >> n >> m;
    string a[n];
    for(auto& i : a) cin >> i;
    int dis[n+1][m+1]={};
    for(int i=0;i<n;i++) for(int j=0;j<m;j++) dis[i][j]=LONG_LONG_MAX;
    priority_queue<array<int, 3>> q;
    dis[0][0]=0;
    q.push({0, 0, 0});
    int mx=0;
    while(sz(q)) {
        auto[cw, curx, cury]=q.top();
        cw*=-1;
        q.pop();
        if(cw!=dis[curx][cury]) continue;
        for(int i = 0;i < 4;i++) {
            int nx=curx+ne[i], ny=cury+nex[i];
            if(nx>=n||nx<0||ny>=m||ny<0||a[nx][ny]=='*') continue;
            if(dis[nx][ny]>cw+(a[curx][cury]!=a[nx][ny]))
            {
                dis[nx][ny]=cw+(a[curx][cury]!=a[nx][ny]);
                mx=max(mx, dis[nx][ny]);
                q.push({-dis[nx][ny], nx, ny});
            }
        }
    }
    cout << mx << endl;
}

Compilation message (stderr)

zoo.cpp:15:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   15 | main()
      | ^~~~
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...