# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
432742 |
2021-06-18T13:01:05 Z |
TryMax |
Stations (IOI20_stations) |
C++17 |
|
3000 ms |
2097156 KB |
#include "stations.h"
#include <bits/stdc++.h>
#ifdef LOCAL
#include "stub.cpp"
#endif // LOCAL
#define f first
#define s second
#define pb push_back
using namespace std;
const int N = 2e5 + 10;
int sz[N], p[N], timer;
vector<int> a[N];
int cypher(int a, int b){
return a * 1000 + (b - 1);
}
pair<int, int> decyper(int num){
return {num / 1000, num % 1000 + 1};
}
void dfs(int u, int pr){
sz[u] = 1;
p[u] = timer++;
for(auto v : a[u])
if(pr != v){
dfs(v, u);
sz[u] += sz[v];
}
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
vector<int> lb;
lb.resize(n);
for(int i = 0; i < n - 1; ++i){
a[u[i]].pb(v[i]);
a[v[i]].pb(u[i]);
}
dfs(0, -1);
for(int i = 0; i < n; ++i)
lb[i] = cypher(p[i], sz[i]);
return lb;
}
int find_next_station(int s, int t, vector<int> c) {
pair<int, int> s1 = decyper(s);
pair<int, int> t1 = decyper(t);
int pr = 0;
vector<pair<int, int>> p;
for(auto v : c){
pair<int, int> c1 = decyper(v);
if(c1.f <= s1.f)
pr = v;
p.pb(c1);
}
sort(p.begin(), p.end());
// cout << s1.f << " " << s1.s << endl;
// cout << t1.f << " " << t1.s << endl;
if(t1.f < s1.f || t1.f >= s1.f + s1.s)
return pr;
// cout << 1 << endl;
for(int i = p.size() - 1; i >= 0; --i)
if(t1.f >= p[i].f)
return cypher(p[i].f, p[i].s);
return cypher(p[0].f, p[0].s);
}
/*
1
7 1000000
0 1
0 2
1 3
1 4
2 5
2 6
2
2 0 1
1 3 2
9
1
3
*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
1634 ms |
2097156 KB |
Execution killed with signal 9 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
3042 ms |
5100 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
1350 ms |
2097156 KB |
Execution killed with signal 9 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
850 ms |
9920 KB |
Output is correct |
2 |
Runtime error |
1073 ms |
2097156 KB |
Execution killed with signal 9 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
2154 ms |
2097156 KB |
Execution killed with signal 9 |
2 |
Halted |
0 ms |
0 KB |
- |