이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*
░░░░██████████████████
░░▄███████▀▀▀▀▀▀███████▄
░▐████▀▒mohammad▒▀██████▄
░███▀▒▒▒▒alaa▒▒▒▒▒▒▀█████
░▐██▒▒▒alwrawrah▒▒▒▒▒████▌
░▐█▌▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████▌
░░█▒▄▀▀▀▀▀▄▒▒▄▀▀▀▀▀▄▒▐███▌
░░░▐░░░▄▄░░▌▐░░░▄▄░░▌▐███▌
░▄▀▌░░░▀▀░░▌▐░░░▀▀░░▌▒▀▒█▌
░▌▒▀▄░░░░▄▀▒▒▀▄░░░▄▀▒▒▄▀▒▌
░▀▄▐▒▀▀▀▀▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒█
░░░▀▌▒▄██▄▄▄▄████▄▒▒▒▒█▀
░░░░▄██████████████▒▒▐▌
░░░▀███▀▀████▀█████▀▒▌
░░░░░▌▒▒▒▄▒▒▒▄▒▒▒▒▒▒▐
░░░░░▌▒▒▒▒▀▀▀▒▒▒▒▒▒▒▐
*/
#include<bits/stdc++.h>
#include "cave.h"
using namespace std;
typedef long long ll ;
const ll oo = 4294967296;
const double PI = acos(-1);
const ll M = 998244353;
int s[5010] , d[5010] , vis[5010];
void exploreCave(int N){
for(int i = 0 ; i < N; ++i){
int x = tryCombination(s);
bool b = (x > i || x == -1 ? 0 : 1);
int lo = 0 , hi = N - 1 ;
while(lo != hi){
int md = (lo + hi) / 2 ;
int idx = lo ;
while(idx <= md){
if(!vis[idx])
s[idx] = !s[idx];
idx++;
}
x = tryCombination(s);
bool ps = (x > i || x == -1 ? 0 : 1);
idx = lo ;
while(idx <= md){
if(!vis[idx])
s[idx] = !s[idx];
idx++;
}
if(b != ps)
hi = md;
else
lo = md + 1;
}
d[lo] = i ;
s[lo] = b ;
vis[lo] = 1;
}
answer(s , d);
}
# | 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... |