Submission #870489

#TimeUsernameProblemLanguageResultExecution timeMemory
870489AtabayRajabliCave (IOI13_cave)C++17
0 / 100
195 ms348 KiB
#include "cave.h"
 
void exploreCave(int n) {
    int a[n], b[n], c[n], ans[n], d[n];
    for(int i = 0; i<n; i++)
    {
        a[i] = 0;
        b[i] = 0;
        c[i] = 0;
    }
    
    int l, r, mid;
    for(int i = 0; i<n; i++)
    {
        l = 0, r = n-1;
        int q = tryCombination(b);
        if(q == -1)q = n;

        while(l < r)
        {
            mid = (l + r) / 2;

            for(int i = 0; i<=mid; i++)if(!c[i])b[i] = a[i];
            for(int i = mid+1; i<=r; i++)if(!c[i])b[i] = !a[i];
            for(int i = r+1; i<n; i++)if(!c[i])b[i] = a[i];
            int k = tryCombination(b);
            if(k == -1)k = n;

            if((q == i && k > i) || (q > i && k == i))l = mid + 1;
            else r = mid;
        }
        d[i] = l;
        c[l] = 1;
        if(q > i)a[i] = a[i];
        else a[i] = !a[i];
        b[l] = a[i];
    }
    
    answer(a, d);
}

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:4:27: warning: unused variable 'ans' [-Wunused-variable]
    4 |     int a[n], b[n], c[n], ans[n], d[n];
      |                           ^~~
#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...