이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |