제출 #782532

#제출 시각아이디문제언어결과실행 시간메모리
782532boyliguanhan자동 인형 (IOI18_doll)C++17
100 / 100
102 ms11692 KiB
#include "doll.h" #include<bits/stdc++.h> using namespace std; vector<int> X, Y; int N, s_state[200100]; int CALCTREE(int l, int r) { if(l >= N) return -1; if(r - 1 > l) { int mid = l+r>>1; X.push_back(0), Y.push_back(0); int pos = X.size()-1; Y[pos]=(CALCTREE(l, mid)); X[pos]=(CALCTREE(mid, r)); return -pos-1; } return 1; } void create_circuit(int M, vector<int> A) { vector<int> C(M+1,-1); A.push_back(0); N = A.size(); int x = 1; while(x<N) x *= 2; CALCTREE(0, x); for(int &i : A) { int cur_switch = 0; while(cur_switch >= 0) { s_state[cur_switch] ^= 1; int &w = s_state[cur_switch] ? X[cur_switch] : Y[cur_switch]; if(w >= 0) w = i, cur_switch = -1; else cur_switch = -1-w; } } answer(C, X, Y); }

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

doll.cpp: In function 'int CALCTREE(int, int)':
doll.cpp:10:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   10 |   int mid = l+r>>1;
      |             ~^~
#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...