제출 #1148449

#제출 시각아이디문제언어결과실행 시간메모리
1148449Kaztaev_AlisherMechanical Doll (IOI18_doll)C++20
6 / 100
58 ms34480 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 if(g[i].size() == 1){ C[i] = g[i][0]; } else { C[i] = -nw; if(g[i].size()%2) g[i].push_back(-nw); 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...