# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
879649 | 2023-11-27T19:26:22 Z | andrei_boaca | Mechanical Doll (IOI18_doll) | C++17 | 129 ms | 28136 KB |
#include "doll.h" #include <bits/stdc++.h> //#include "grader.cpp" using namespace std; typedef long long ll; typedef pair<int,int> pii; int n; const int INF=1e9; vector<int> vecini[100005]; vector<int> C,X,Y; vector<int> v; int lft[5000005],rgt[5000005]; int s; int state[5000005]; int added=0; int build(int lg) { if(lg==1) return INF; added+=lg%2; lg+=lg%2; int a=build(lg/2); int b=build(lg/2); s++; lft[s]=a; rgt[s]=b; return -s; } int plsmake() { if(v.size()==1) return v[0]; ll lg=v.size(); added=0; int c=build(lg); vector<pii> ord; for(int i=1;i<=lg+added;i++) { int nod=c; while(true) { nod=abs(nod); if(state[nod]==0) { if(lft[nod]==INF) { ord.push_back({nod,0}); state[nod]^=1; break; } state[nod]=1; nod=lft[nod]; continue; } else { if(rgt[nod]==INF) { ord.push_back({nod,1}); state[nod]^=1; break; } state[nod]=0; nod=rgt[nod]; continue; } } } for(int i=0;i<ord.size();i++) { int who=ord[i].first; int dir=ord[i].second; if(i+1<v.size()) { if(dir==0) lft[who]=v[i]; else rgt[who]=v[i]; continue; } if(i+1==ord.size()) { if(dir==0) lft[who]=v.back(); else rgt[who]=v.back(); continue; } if(dir==0) lft[who]=c; else rgt[who]=c; } return c; } void create_circuit(int M, std::vector<int> A) { C.resize(M+1); n=A.size(); if(n==16) { C[0]=A[0]; for(int i=1;i<A.size();i++) v.push_back(A[i]); v.push_back(0); int c=plsmake(); for(int i=1;i<=M;i++) C[i]=c; for(int i=1;i<=s;i++) { X.push_back(lft[i]); Y.push_back(rgt[i]); } answer(C,X,Y); return; } for(int i=0;i<A.size();i++) { int x=A[i]; int nxt=0; if(i+1<A.size()) nxt=A[i+1]; vecini[x].push_back(nxt); } C[0]=A[0]; for(int i=1;i<=M;i++) { if(vecini[i].empty()) { C[i]=0; continue; } else { v=vecini[i]; C[i]=plsmake(); } } for(int i=1;i<=s;i++) { X.push_back(lft[i]); Y.push_back(rgt[i]); } /*for(int i=0;i<C.size();i++) cout<<C[i]<<' '; cout<<'\n'; for(int i=1;i<=s;i++) cout<<-i<<' '<<X[i-1]<<' '<<Y[i-1]<<'\n';*/ answer(C,X,Y); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 3676 KB | Output is correct |
2 | Correct | 19 ms | 7828 KB | Output is correct |
3 | Correct | 18 ms | 7516 KB | Output is correct |
4 | Correct | 2 ms | 5724 KB | Output is correct |
5 | Correct | 8 ms | 7004 KB | Output is correct |
6 | Correct | 21 ms | 9492 KB | Output is correct |
7 | Correct | 1 ms | 3672 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 3676 KB | Output is correct |
2 | Correct | 19 ms | 7828 KB | Output is correct |
3 | Correct | 18 ms | 7516 KB | Output is correct |
4 | Correct | 2 ms | 5724 KB | Output is correct |
5 | Correct | 8 ms | 7004 KB | Output is correct |
6 | Correct | 21 ms | 9492 KB | Output is correct |
7 | Correct | 1 ms | 3672 KB | Output is correct |
8 | Correct | 35 ms | 14808 KB | Output is correct |
9 | Correct | 36 ms | 15260 KB | Output is correct |
10 | Correct | 56 ms | 18632 KB | Output is correct |
11 | Correct | 1 ms | 5720 KB | Output is correct |
12 | Correct | 1 ms | 5724 KB | Output is correct |
13 | Correct | 1 ms | 5724 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 3676 KB | Output is correct |
2 | Correct | 19 ms | 7828 KB | Output is correct |
3 | Correct | 18 ms | 7516 KB | Output is correct |
4 | Correct | 2 ms | 5724 KB | Output is correct |
5 | Correct | 8 ms | 7004 KB | Output is correct |
6 | Correct | 21 ms | 9492 KB | Output is correct |
7 | Correct | 1 ms | 3672 KB | Output is correct |
8 | Correct | 35 ms | 14808 KB | Output is correct |
9 | Correct | 36 ms | 15260 KB | Output is correct |
10 | Correct | 56 ms | 18632 KB | Output is correct |
11 | Correct | 1 ms | 5720 KB | Output is correct |
12 | Correct | 1 ms | 5724 KB | Output is correct |
13 | Correct | 1 ms | 5724 KB | Output is correct |
14 | Correct | 77 ms | 20772 KB | Output is correct |
15 | Correct | 36 ms | 14528 KB | Output is correct |
16 | Correct | 60 ms | 17940 KB | Output is correct |
17 | Correct | 2 ms | 5724 KB | Output is correct |
18 | Correct | 2 ms | 5724 KB | Output is correct |
19 | Correct | 1 ms | 5720 KB | Output is correct |
20 | Correct | 62 ms | 19472 KB | Output is correct |
21 | Correct | 2 ms | 5980 KB | Output is correct |
22 | Correct | 2 ms | 5724 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 5724 KB | Output is correct |
2 | Correct | 1 ms | 5724 KB | Output is correct |
3 | Correct | 1 ms | 5724 KB | Output is correct |
4 | Correct | 2 ms | 5720 KB | Output is correct |
5 | Correct | 2 ms | 5720 KB | Output is correct |
6 | Correct | 2 ms | 5916 KB | Output is correct |
7 | Correct | 1 ms | 5724 KB | Output is correct |
8 | Correct | 1 ms | 5724 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Partially correct | 2 ms | 5724 KB | Output is partially correct |
2 | Correct | 54 ms | 16000 KB | Output is correct |
3 | Partially correct | 106 ms | 22140 KB | Output is partially correct |
4 | Partially correct | 109 ms | 23084 KB | Output is partially correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Partially correct | 2 ms | 5724 KB | Output is partially correct |
2 | Correct | 54 ms | 16000 KB | Output is correct |
3 | Partially correct | 106 ms | 22140 KB | Output is partially correct |
4 | Partially correct | 109 ms | 23084 KB | Output is partially correct |
5 | Partially correct | 81 ms | 23416 KB | Output is partially correct |
6 | Partially correct | 84 ms | 25584 KB | Output is partially correct |
7 | Partially correct | 82 ms | 25080 KB | Output is partially correct |
8 | Partially correct | 89 ms | 26572 KB | Output is partially correct |
9 | Partially correct | 94 ms | 20992 KB | Output is partially correct |
10 | Partially correct | 129 ms | 28136 KB | Output is partially correct |
11 | Partially correct | 108 ms | 26956 KB | Output is partially correct |
12 | Partially correct | 74 ms | 19232 KB | Output is partially correct |
13 | Partially correct | 54 ms | 18184 KB | Output is partially correct |
14 | Partially correct | 53 ms | 17780 KB | Output is partially correct |
15 | Partially correct | 52 ms | 17104 KB | Output is partially correct |
16 | Partially correct | 3 ms | 6236 KB | Output is partially correct |
17 | Partially correct | 46 ms | 16632 KB | Output is partially correct |
18 | Partially correct | 55 ms | 16744 KB | Output is partially correct |
19 | Partially correct | 50 ms | 17508 KB | Output is partially correct |
20 | Partially correct | 64 ms | 19988 KB | Output is partially correct |
21 | Partially correct | 97 ms | 24800 KB | Output is partially correct |
22 | Partially correct | 59 ms | 19172 KB | Output is partially correct |