# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
116245 |
2019-06-11T13:40:02 Z |
nvmdava |
Ideal city (IOI12_city) |
C++17 |
|
282 ms |
17968 KB |
#include <bits/stdc++.h>
using namespace std;
long long res = 0;
set<pair<int, int> > loc[2];
int t[2], re[2], st, n;
long long sz[2][100005];
vector<int> adj[2][100005];
int dfs(int x, int y){
int id = ++re[st], q = y++;
set<pair<int, int> >::iterator it;
while((it = loc[st].find({x, ++q})) != loc[st].end())
loc[st].erase(it), sz[st][id]++;
while((it = loc[st].find({x, --y})) != loc[st].end())
loc[st].erase(it), sz[st][id]++;
for(y++; y < q; y++){
for(int j = -1; j <= 1; j += 2){
if(loc[st].count({x + j, y})){
int w = dfs(x + j, y);
adj[st][id].push_back(w);
sz[st][id] += sz[st][w];
}
}
}
res += (n - sz[st][id]) * sz[st][id];
return id;
}
int DistanceSum(int N, int *X, int *Y) {
n = N;
for(int i = 0; i < N; i++){
X[i] -= 9;
Y[i] -= 9;
loc[0].insert({X[i], Y[i]});
loc[1].insert({Y[i], X[i]});
}
t[0] = X[0];
t[1] = Y[0];
dfs(t[0], t[1]);
st ^= 1;
dfs(t[1], t[0]);
return res % 1000000000;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
4992 KB |
Output is correct |
2 |
Correct |
6 ms |
4992 KB |
Output is correct |
3 |
Correct |
6 ms |
4992 KB |
Output is correct |
4 |
Correct |
6 ms |
4992 KB |
Output is correct |
5 |
Correct |
6 ms |
4992 KB |
Output is correct |
6 |
Correct |
7 ms |
5120 KB |
Output is correct |
7 |
Correct |
6 ms |
4992 KB |
Output is correct |
8 |
Correct |
7 ms |
5120 KB |
Output is correct |
9 |
Correct |
6 ms |
4992 KB |
Output is correct |
10 |
Correct |
6 ms |
4992 KB |
Output is correct |
11 |
Correct |
6 ms |
5120 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
7 ms |
5120 KB |
Output is correct |
2 |
Correct |
7 ms |
5120 KB |
Output is correct |
3 |
Correct |
8 ms |
5248 KB |
Output is correct |
4 |
Correct |
8 ms |
5248 KB |
Output is correct |
5 |
Correct |
9 ms |
5376 KB |
Output is correct |
6 |
Correct |
8 ms |
5248 KB |
Output is correct |
7 |
Correct |
9 ms |
5248 KB |
Output is correct |
8 |
Correct |
8 ms |
5248 KB |
Output is correct |
9 |
Correct |
8 ms |
5248 KB |
Output is correct |
10 |
Correct |
7 ms |
5248 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
27 ms |
7168 KB |
Output is correct |
2 |
Correct |
27 ms |
7168 KB |
Output is correct |
3 |
Correct |
64 ms |
10236 KB |
Output is correct |
4 |
Correct |
65 ms |
10360 KB |
Output is correct |
5 |
Correct |
179 ms |
15352 KB |
Output is correct |
6 |
Correct |
167 ms |
15532 KB |
Output is correct |
7 |
Correct |
174 ms |
15608 KB |
Output is correct |
8 |
Correct |
187 ms |
15400 KB |
Output is correct |
9 |
Correct |
224 ms |
15632 KB |
Output is correct |
10 |
Correct |
224 ms |
17968 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
42 ms |
7308 KB |
Output is correct |
2 |
Correct |
35 ms |
7296 KB |
Output is correct |
3 |
Correct |
122 ms |
10824 KB |
Output is correct |
4 |
Correct |
95 ms |
10588 KB |
Output is correct |
5 |
Correct |
266 ms |
16200 KB |
Output is correct |
6 |
Correct |
267 ms |
15848 KB |
Output is correct |
7 |
Correct |
282 ms |
16352 KB |
Output is correct |
8 |
Correct |
257 ms |
15948 KB |
Output is correct |
9 |
Correct |
238 ms |
15728 KB |
Output is correct |
10 |
Correct |
201 ms |
15608 KB |
Output is correct |