Submission #719208

#TimeUsernameProblemLanguageResultExecution timeMemory
719208TahirAliyevCave (IOI13_cave)C++17
100 / 100
280 ms468 KiB
#include "cave.h"
#include <bits/stdc++.h>
 
using namespace std;
 
void exploreCave(int n){
    int comb[n];
    memset(comb, 0, sizeof(comb));
    int doors[n];
    int s[n];
    vector<int> switches(n);
    for (int i = 0; i < n; i++)
    {
        switches[i] = i;
    }
    for (int i = 0; i < n; i++)
    {
        for(int a:switches){
            comb[a] = 0;
        }
        int a = tryCombination(comb);
        if(a > i || a == -1){
            for(int b:switches){
                comb[b] = 1;
            }
        }
        int l = 0, r = switches.size() - 1;
        while(l < r){
            int m = (l + r) / 2;
            for(int j = l; j <= m; j++){
                comb[switches[j]] ^= 1;
            }
            int a = tryCombination(comb);
            for (int j = l; j <= m; j++)
            {
                comb[switches[j]] ^= 1;
            }
            if(a > i || a == -1){
                r = m;
            }
            else{
                l = m + 1;
            }
        }
        doors[switches[l]] = i;
        s[i] = switches[l];
        comb[switches[l]] ^= 1;
        switches.erase(switches.begin() + l);
    }
    answer(comb, doors);
}

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:10:9: warning: variable 's' set but not used [-Wunused-but-set-variable]
   10 |     int s[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...