제출 #1068604

#제출 시각아이디문제언어결과실행 시간메모리
1068604ArthuroWich이상적인 도시 (IOI12_city)C++17
32 / 100
1066 ms3164 KiB
#include<bits/stdc++.h> using namespace std; int DistanceSum(int n, int x[], int y[]) { int ans = 0; map<pair<int, int>, int> mp; for (int i = 0; i < n; i++) { mp[{x[i], y[i]}] = i; } vector<vector<int>> adj(n); for (auto c : mp) { auto [i, j] = c.first; if (mp.find({i+1, j}) != mp.end()) { adj[c.second].push_back(mp[{i+1, j}]); } if (mp.find({i-1, j}) != mp.end()) { adj[c.second].push_back(mp[{i-1, j}]); } if (mp.find({i, j+1}) != mp.end()) { adj[c.second].push_back(mp[{i, j+1}]); } if (mp.find({i, j-1}) != mp.end()) { adj[c.second].push_back(mp[{i, j-1}]); } } for (int i = 0; i < n; i++) { queue<int> q; vector<int> dist(n, INT_MAX); q.push(i); dist[i] = 0; while(!q.empty()) { int a = q.front(); q.pop(); for (int b : adj[a]) { if (dist[b] == INT_MAX) { dist[b] = dist[a]+1; q.push(b); } } } for (int j = 0; j < n; j++) { ans += dist[j]; } } return ans/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...