Submission #64411

#TimeUsernameProblemLanguageResultExecution timeMemory
64411theknife2001Wombats (IOI13_wombats)C++17
12 / 100
16068 ms19232 KiB
#include "wombats.h"
#include <bits/stdc++.h>
#define ii pair< int , int>
#define se second
#define fi first

using namespace std;
const int N=5e3+55;
int sum[N][2][2];
int v[N][2];
int h[N][2];
int n,m;
map < ii , int > mp;
vector < ii > vec[N];

void init(int R, int C, int H[][200], int V[][200])
{
    n=R;
    m=C;
    int cnt=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            v[i][j]=V[i][j];
            h[i][j]=H[i][j];
            if(j+1!=m)
            {
                vec[cnt].push_back({cnt+1,h[i][j]});
                vec[cnt+1].push_back({cnt,h[i][j]});
            }
            if(i+1!=n)
                vec[cnt].push_back({cnt+m,v[i][j]});
            mp[{i,j}]=cnt;
            cnt++;
        }
    }
}

void changeH(int P, int Q, int W)
{
    h[P][Q]=W;
}

void changeV(int P, int Q, int W)
{
    v[P][Q]=W;

}

priority_queue < ii , vector < ii > , greater < ii > > pq;
int dist[5000000];

int escape(int V1, int V2)
{
    pq.push({0,V1});
    for(int i=0;i<50000;i++)
        dist[i]=1e9;
    int u,c;
    dist[V1]=0;
    while(pq.size())
    {
        u=pq.top().se;
        c=pq.top().fi;
        pq.pop();
        if(dist[u]<c)
            continue ;
        int v,d;
        for(int i=0;i<vec[u].size();i++)
        {
            v=vec[u][i].fi;
            d=vec[u][i].se;
            if(d+c<dist[v])
            {
                dist[v]=d+c;
                pq.push({c+d,v});
            }
        }
    }

    return dist[mp[{n-1,V2}]];
}

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
  int res;
      ^~~
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:69:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<vec[u].size();i++)
                     ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...