Submission #315193

#TimeUsernameProblemLanguageResultExecution timeMemory
315193juggernautIdeal city (IOI12_city)C++14
32 / 100
172 ms17280 KiB
#include<bits/stdc++.h>
//#include"grader.cpp"
using namespace std;
typedef long long ll;
vector<int>g[2005];
int d[2005][2005],res;
int DistanceSum(int n,int *X,int *Y){
    if(n<2001){
        int i,j;
        for(i=0;i+1<n;i++)
        for(j=i+1;j<n;j++){d[i][j]=INT_MAX,d[j][i]=INT_MAX;if(abs(X[i]-X[j])+abs(Y[i]-Y[j])==1){
            g[i].push_back(j);
            g[j].push_back(i);
        }}
        for(i=0;i<n;i++){
            queue<int>q;
            q.push(i);
            while(!q.empty()){
                int v=q.front();
                q.pop();
                for(int to:g[v])if(d[i][to]>d[i][v]+1){
                    d[i][to]=d[i][v]+1;
                    q.push(to);
                }
            }
        }
        for(i=0;i+1<n;i++)
            for(j=i+1;j<n;j++)res=(res+d[i][j])%(1000000000);
        return res;
    }
}
/*
11
2 5
2 6
3 3
3 6
4 3
4 4
4 5
4 6
5 3
5 4
5 6
*/

Compilation message (stderr)

city.cpp: In function 'int DistanceSum(int, int*, int*)':
city.cpp:31:1: warning: control reaches end of non-void function [-Wreturn-type]
   31 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...