Submission #1148498

#TimeUsernameProblemLanguageResultExecution timeMemory
1148498Kaztaev_AlisherMechanical Doll (IOI18_doll)C++20
0 / 100
42 ms32184 KiB
#include "doll.h" #include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define F first #define S second using namespace std; using ll = long long; const ll N = 1e6+5 , inf = 2e9 + 7; const ll INF = 1e18 , mod = 1e9+7; int cur[N]; pair<int,int> p[N]; vector<int> g[N]; int nw = 1; void build(int v, int tl , int tr , int k , int s , int V){ if(tl == tr){ cur[v] = -g[V][s]; return; } else { cur[v] = nw++; } int tm = (tl+tr) >> 1; build(v*2,tl,tm,k+1,s,V); build(v*2+1,tm+1,tr,k+1,s+(1 << k),V); p[cur[v]] = {-cur[v*2] , -cur[v*2+1]}; } void create_circuit(int M, vector<int> a) { int N = a.size(); g[0].push_back(a[0]); for(int i = 0; i+1 < a.size(); i++) g[a[i]].push_back(a[i+1]); g[a.back()].push_back(0); vector<int> C(M + 1); vector<int> X, Y; for(int i = 0; i <= M; i++){ if(g[i].size() == 0){ C[i] = 0; } else { C[i] = -nw; reverse(all(g[i])); if(g[i].size() % 2 )g[i].push_back(-nw); reverse(all(g[i])); build(1,1,g[i].size(),0,0,i); } } for(int i = 1; i < nw; i++){ X.push_back(p[i].F); Y.push_back(p[i].S); } // for(int i = 0; i <= M; i++){ // cout << i <<" " << C[i] <<" \n"; // } // cout << "\n"; // for(int i = 0; i < X.size(); i++){ // cout << -(i+1) <<" " << X[i] <<" x\n"; // cout << -(i+1) <<" " << Y[i] << " y\n"; // } answer(C, X, Y); } // int main(){ // int M; // cin >> M; // vector<int> a; // int n; // cin >> n; // for(int i = 0; i < n; i++){ // a.push_back(0); // cin >> a.back(); // } // create_circuit(M , a); // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...