Submission #363044

#TimeUsernameProblemLanguageResultExecution timeMemory
363044eric_xiaoIdeal city (IOI12_city)C++14
11 / 100
1090 ms5308 KiB
#include<bits/stdc++.h> #define ll long long #define pll pair<int,int> #define F first #define S second using namespace std; const ll m = 1000000000; struct hash_pair { template <class T1, class T2> size_t operator()(const pair<T1, T2>& p) const { auto hash1 = hash<T1>{}(p.first); auto hash2 = hash<T2>{}(p.second); return hash1 ^ hash2; } }; unordered_set<pll,hash_pair> st; unordered_map<pll,ll,hash_pair> dis; pll all[100009]; ll X[4] = {0,1,0,-1},Y[4] {1,0,-1,0}; /*k = 0 U k = 1 R k = 2 D k = 4 L*/ ll ans; void BFS(pll s) { queue<pll> q; q.push(s); ll i; dis.clear(); dis[s] = 0; while(!q.empty()) { auto u = q.front(); q.pop(); for(i = 0;i < 4;i++) { if(st.count({u.F + X[i],u.S + Y[i]}) && !dis.count({u.F + X[i],u.S + Y[i]})) { dis[{u.F + X[i],u.S + Y[i]}] = dis[u] + 1; q.push({u.F + X[i],u.S + Y[i]}); } } } for(auto a : dis) { ans += a.S; } } int DistanceSum(int N, int *X, int *Y) { ll M,i,j,k; st.reserve(2048); st.max_load_factor(0.25); dis.reserve(2048); dis.max_load_factor(0.25); for(i = 0;i < N;i++) { all[i] = {X[i],Y[i]}; } sort(all,all+N); for(i = N-1;i >= 0;i--) { st.insert(all[i]); } for(i = 0;i < N;i++) { BFS(all[i]); } return (int)(ans/2)%m; }

Compilation message (stderr)

city.cpp: In function 'int DistanceSum(int, int*, int*)':
city.cpp:52:8: warning: unused variable 'M' [-Wunused-variable]
   52 |     ll M,i,j,k;
      |        ^
city.cpp:52:12: warning: unused variable 'j' [-Wunused-variable]
   52 |     ll M,i,j,k;
      |            ^
city.cpp:52:14: warning: unused variable 'k' [-Wunused-variable]
   52 |     ll M,i,j,k;
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...