Submission #574715

#TimeUsernameProblemLanguageResultExecution timeMemory
574715FatihSolakIdeal city (IOI12_city)C++17
11 / 100
1082 ms3540 KiB
#include <bits/stdc++.h> using namespace std; int DistanceSum(int n, int *x, int *y) { map<pair<int,int>,int> mp; for(int i = 0;i<n;i++){ mp[{x[i],y[i]}] = 1; } long long ans = 0; if(n <= 2000){ for(int i = 0;i<n;i++){ map<pair<int,int>,int> dist; queue<pair<int,int>> q; q.push({x[i],y[i]}); while(q.size()){ auto tp = q.front(); q.pop(); int xx = tp.first; int yy = tp.second; ans += dist[tp]; for(int dx = -1;dx <=1;dx++){ for(int dy = -1;dy<=1;dy++){ if(abs(dx) + abs(dy) != 1)continue; if(mp[{xx+dx,yy+dy}] && dist[{xx+dx,yy+dy}] == 0 && make_pair(xx + dx,yy+dy) != make_pair(x[i],y[i])){ dist[{xx+dx,yy+dy}] = dist[tp] + 1; q.push({xx+dx,yy+dy}); } } } } } return ans/2; } }

Compilation message (stderr)

city.cpp: In function 'int DistanceSum(int, int*, int*)':
city.cpp:5:28: warning: control reaches end of non-void function [-Wreturn-type]
    5 |     map<pair<int,int>,int> mp;
      |                            ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...