제출 #69785

#제출 시각아이디문제언어결과실행 시간메모리
69785FedericoS이상적인 도시 (IOI12_city)C++14
11 / 100
1078 ms3228 KiB
#include <iostream> #include <algorithm> #include <queue> #include <set> #include <map> using namespace std; typedef pair<int,int> pii; int xmov[]={0, 1, 0, -1}; int ymov[]={1, 0, -1, 0}; queue<pii> Q; set<pii> B; map<pii,int> D; int ans; int DistanceSum(int N, int *X, int *Y) { for(int i=0;i<N;i++) B.insert({X[i],Y[i]}); for(int i=0;i<N;i++){ for(int j=0;j<N;j++) D[{X[j],Y[j]}]=-1; D[{X[i],Y[i]}]=0; Q.push({X[i],Y[i]}); while(!Q.empty()){ pii p=Q.front(); Q.pop(); for(int j=0;j<4;j++) if(B.count({p.first+xmov[j],p.second+ymov[j]}) and D[{p.first+xmov[j],p.second+ymov[j]}]==-1){ D[{p.first+xmov[j],p.second+ymov[j]}]=D[{p.first,p.second}]+1; Q.push({p.first+xmov[j],p.second+ymov[j]}); } } for(int j=0;j<N;j++) ans+=D[{X[j],Y[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...