#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fo(i, n) for(ll i = 0; i<(n); i++)
#define pb push_back
#define F first
#define S second
#define deb(x) cout << #x << " = " << (x) << endl
#define deb2(x, y) cout << #x << " = " << (x) << ", " << #y << " = " << (y) << endl
typedef vector<ll> vl;
typedef vector<vl> vvl;
// void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y){
// }
void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y);
void create_circuit(int M, std::vector<int> A){
vvl adj(M+1);
ll n = A.size();
adj[0].pb(A[0]);
fo(i, n){
if(i<n-1) adj[A[i]].pb(A[i+1]);
else adj[A[i]].pb(0);
}
ll cou = 0;
vector<int> c, x, y;
fo(i, M+1){
cou = x.size();
ll co = 0;
if(adj[i].size() == 0){
c.pb(i);
continue;
}
else if(adj[i].size() == 1){
c.pb(adj[i][0]);
continue;
}
c.pb(-cou-1);
ll am = adj[i].size();
ll ext = 1;
while(ext<am) ext*=2ll;
ll am2 = ext-am;
vl order(ext*2);
vl state(ext, 0);
fo(j, ext){
ll current = 1;
while(current<ext){
ll sta = state[current];
state[current] = !state[current];
current*=2;
if(sta)current++;
}
if(ext-current-1<am2) order[current] = (-cou-1);
else order[current] = (adj[i][co++]);
// deb2(current, order[current]);
}
co= 0;
fo(i, ext){
if(!i) continue;
if(i*2<ext){
if(order[(-cou-i*2)*2] == order[(-cou-i*2)*2+1] && 0) x.pb(order[(-cou-i*2)*2]);
else x.pb(-cou-i*2);
if(order[(-cou-i*2-1)*2] == order[(-cou-i*2-1)*2+1] && 0) y.pb(order[(-cou-i*2-1)*2]);
else y.pb(-cou-i*2-1);
}else{
x.pb(order[i*2]);
y.pb(order[i*2+1]);
}
}
}
// fo(i, c.size()){
// deb(c[i]);
// }
// fo(i, x.size()){
// deb2(x[i], y[i]);
// }
answer(c, x, y);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
18 ms |
6876 KB |
Output is correct |
3 |
Correct |
16 ms |
5600 KB |
Output is correct |
4 |
Correct |
1 ms |
344 KB |
Output is correct |
5 |
Correct |
8 ms |
4048 KB |
Output is correct |
6 |
Correct |
24 ms |
8664 KB |
Output is correct |
7 |
Correct |
1 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
18 ms |
6876 KB |
Output is correct |
3 |
Correct |
16 ms |
5600 KB |
Output is correct |
4 |
Correct |
1 ms |
344 KB |
Output is correct |
5 |
Correct |
8 ms |
4048 KB |
Output is correct |
6 |
Correct |
24 ms |
8664 KB |
Output is correct |
7 |
Correct |
1 ms |
344 KB |
Output is correct |
8 |
Incorrect |
33 ms |
8264 KB |
over 20000000 inversions |
9 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
18 ms |
6876 KB |
Output is correct |
3 |
Correct |
16 ms |
5600 KB |
Output is correct |
4 |
Correct |
1 ms |
344 KB |
Output is correct |
5 |
Correct |
8 ms |
4048 KB |
Output is correct |
6 |
Correct |
24 ms |
8664 KB |
Output is correct |
7 |
Correct |
1 ms |
344 KB |
Output is correct |
8 |
Incorrect |
33 ms |
8264 KB |
over 20000000 inversions |
9 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
over 20000000 inversions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
over 20000000 inversions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
over 20000000 inversions |
2 |
Halted |
0 ms |
0 KB |
- |