제출 #891655

#제출 시각아이디문제언어결과실행 시간메모리
891655vjudge1자동 인형 (IOI18_doll)C++17
84 / 100
89 ms11316 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; using vi = vector<int>; vi X, Y; vector<pair<int, int> > VP; int gen(int niv, int nr) { int id = X.size(); X.push_back(0); Y.push_back(0); //cout << niv << " " << nr << "\n"; if(niv == 1 && nr == 2) { return -id - 1; } else if(niv == 1 && nr == 1) { X[id] = -1; return -id - 1; } if(nr <= (1 << (niv - 1))) { int S = gen(niv - 1, nr); Y[id] = S; X[id] = -1; return -id - 1; } else { Y[id] = gen(niv - 1, (1 << (niv - 1))); X[id] = gen(niv - 1, nr - (1 << (niv - 1))); return -id - 1; } return -id - 1; } void create_circuit(int M, vi A) { A.push_back(0); int niv = 1; while((1 << niv) <= A.size()) ++niv; gen(niv, A.size()); vi C(M + 1, -1); vi Stare(X.size(), 0); int u = -1, p = 0; ////cout << "ASSIGN\n"; do { if(u > 0) { u = -1; } int id = -u - 1; if(!Stare[id]) { Stare[id] ^= 1; if(X[id]) u = X[id]; else { u = X[id] = A[p++]; } } else { Stare[id] ^= 1; if(Y[id]) u = Y[id]; else { u = Y[id] = A[p++]; } } } while(u != 0); int nr0 = 0; for(auto &it : X) nr0 += !it; for(auto &it : Y) nr0 += !it; //cout << "In total " << nr0 << "\n"; //for(auto it : Stare) //cout << it << " "; //cout << "\n"; //cout << "C: "; //for(auto it : C) //cout << it << " "; //cout << "\n"; //cout << "X: "; //for(auto it : X) //cout << it << " "; //cout << "\n"; //cout << "Y: "; //for(auto it : Y) //cout << it << " "; //cout << "\n"; answer(C, X, Y); }

컴파일 시 표준 에러 (stderr) 메시지

doll.cpp: In function 'void create_circuit(int, vi)':
doll.cpp:41:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |     while((1 << niv) <= A.size()) ++niv;
      |           ~~~~~~~~~~~^~~~~~~~~~~
#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...