제출 #429638

#제출 시각아이디문제언어결과실행 시간메모리
429638Mounir이상적인 도시 (IOI12_city)C++14
11 / 100
1084 ms5444 KiB
#include <bits/stdc++.h> #define pii pair<int, int> #define x first #define y second #define pb push_back using namespace std; int delta[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; set<pii> vues; map<pii, vector<pii>> voisins; map<pii, int> dist; int DistanceSum(int nVilles, int *X, int *Y) { vector<pii> villes(nVilles); for (int iVille = 0; iVille < nVilles; ++iVille){ villes[iVille] = {X[iVille], Y[iVille]}; vues.insert(villes[iVille]); } for (pii ville : villes){ for (int i = 0; i < 4; ++i){ int ax = ville.x + delta[i][0], ay = ville.y + delta[i][1]; if (vues.count({ax, ay}) == 1) voisins[ville].pb({ax, ay}); } } int sum = 0; for (pii depart : villes){ dist = {}; dist[depart] = 0; queue<pii> file; file.push(depart); while (!file.empty()){ pii cur = file.front(); file.pop(); for (pii voisin : voisins[cur]){ if (dist.count(voisin) == 0){ sum += dist[cur] + 1; dist[voisin] = dist[cur] + 1; file.push(voisin); } } } } return sum/2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...