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;
/*
int S[1<<20], D[1<<20];
int N;
int tryCombination(int comb[])
{
int mini = 1<<20;
for (int i = 0; i < N; i++)
if (S[i] != comb[i])
mini = min (mini, D[i]);
if (mini == 1<<20) mini = -1;
return mini;
}
void answer (int arr[], int otro[])
{
for (int i = 0; i < N; i++)
if (arr[i] != S[i])
{
cout << "WA";
return;
}
for (int i = 0; i < N; i++)
if (otro[i] != D[i])
{
cout << "WA";
return;
}
cout << "AC";
}
void imprime (int arr[])
{
for (int i = 0; i < N; i++)
cout << arr[i] << " ";
cout << '\n';
}
*/
void llena (int l, int r, int val, int arr[], bool visi[])
{
for (int i = l; i <= r; i++)
{
if (visi[i]) continue;
arr[i] = val;
}
}
void exploreCave(int N)
{
int arr[N];
int otro[N];
bool visi[N];
for (int i = 0; i < N; i++)
{
arr[i] = 0;
visi[i] = 0;
}
int last = 0;
while (last < N)
{
llena(0, N-1, 0, arr, visi);
int temp = tryCombination(arr); //puros ceros xd
int necesita = 0;
if (temp == last) necesita = 1;
int opuesto = 0; if (necesita == 0) opuesto = 1;
int l = 0, r = N;
while (l < r)
{
int mit = (l+r)>>1;
llena(l, mit, necesita, arr, visi);
llena(mit+1, r, opuesto, arr, visi);
temp = tryCombination(arr);
if (temp == last) // no esta del lado izquierdo
{
llena(l, mit, opuesto, arr, visi);
llena(mit+1, r, necesita, arr, visi);
l = mit+1;
continue;
}
//esta del lado izquierdo
r = mit;
}
otro[l] = last;
visi[l] = 1;
arr[l] = necesita;
last++;
}
//imprime(arr);
//imprime(otro);
answer(arr, otro);
}
# | 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... |