제출 #1309024

#제출 시각아이디문제언어결과실행 시간메모리
1309024nikaa123자동 인형 (IOI18_doll)C++20
6 / 100
50 ms14824 KiB
#include "doll.h" #include <bits/stdc++.h> #define deb(x) cout << #x << " ---> " << x << endl using namespace std; // void answer(vector <int> C, vector <int> X, vector <int> Y) { // cout << C.size() << endl; // for (auto x:C) { // cout << x << " " ; // } // cout << endl; // cout << X.size() << endl; // for (int i = 0; i < X.size(); i++) { // cout << X[i] << " " << Y[i] << endl; // } // } vector <vector<int>> v(2e5+5); void create_circuit(int M, vector<int> A) { A.push_back(0); A.insert(A.begin(),0); int N = A.size(); vector<int> C(M + 1); for (int i = 0; i <= M; ++i) { C[i] = 1; } vector<int> X, Y; for (int i = 1; i <= N-1; i++) { v[A[i-1]].push_back(A[i]); } int S = 1; // cout << 1 << endl; for (int i = 0; i <= M; i++) { // cout << i << endl; int k = v[i].size(); if (k == 1) { C[i] = v[i][0]; } else if (k > 1) { // cout << i << endl; int cur = 2; vector <int> res; C[i] = (0-S); res.push_back(S++); X.push_back(-1); Y.push_back(-1); while (cur < k) { vector <int> nres; for (auto x:res) { X[x] = S; Y[x] = S+1; nres.push_back(S); nres.push_back(S+1); X.push_back(-1); Y.push_back(-1); X.push_back(-1); Y.push_back(-1); S+=2; } cur *= 2; res = nres; } // deb(cur); int xr = cur - k; // deb(xr); // deb(X[0]); // deb(Y[0]); // deb(res[0]); for (int j = 0; j < xr; j++) { X[res[j]] = res[j]; } // deb(X[0]); // deb(Y[0]); int pos = 0; for (int j = 0; j < cur; j++) { if (j%2==0) { int o = j/2; o = res[o]-1; if (X[o] != -1) continue; // cout << j << endl; X[o] = v[i][pos]; // deb(X[o]); pos++; } else { int o = j/2; o = res[o]-1; if (Y[o] != -1) continue; // cout << j << endl; Y[o] = v[i][pos]; pos++; } } } } answer(C, X, Y); } // int main () { // int n,m; // cin >> m; // cin >> n; // vector <int> a(n); // for (int i= 1; i <= n; i++) { // cin >> a[i-1]; // } // 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...