This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "cave.h"
#include <bits/stdc++.h>
using namespace std ;
const int MAX = 5005 ;
int s[MAX] , d[MAX] , arr[MAX] , last , done[MAX];
int now ;
bool check(int l , int mid)
{
for(int i = l ; i <= mid ; ++i)
{
if(done[i])
continue ;
s[i] = !s[i] ;
}
int x = tryCombination(s) ;
for(int i = l ; i <= mid ; ++i)
{
if(done[i])
continue;
s[i] = !s[i] ;
}
if(x > now || x == -1)
{
last = x ;
return 1 ;
}
return 0 ;
}
void exploreCave(int N)
{
memset(s , 0 , sizeof(s));
for(int i = 0 ; i < N ; ++i)
{
now = i ;
if(last > i || last == -1)
{
for(int j = 0 ; j < N ; ++j)
{
if(done[j])
continue;
s[j] = !s[j] ;
}
}
int l = 0 , r = N-1 , ans = N-1;
while(l <= r)
{
int mid = (l + r) / 2 ;
if(check(l , mid))
ans = mid , r = mid-1 ;
else
l = mid+1 ;
}
d[i] = ans ;
done[ans] = 1 ;
s[ans] = !s[ans] ;
}
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... |