Submission #1315826

#TimeUsernameProblemLanguageResultExecution timeMemory
1315826muramasaCave (IOI13_cave)C++20
0 / 100
1 ms332 KiB
#include "cave.h"
#include <bits/stdc++.h>

using namespace std;

int* filp(int S[],bool valid[],int N,int l,int r){
    int comb[N];
    for(int i = 0;i < N;i++){
        if(l <= i && i <= r){
            if(!valid[i])comb[i] = 1 - S[i];
            else comb[i] = S[i];
        }else comb[i] = S[i];
    }
    return comb;
}

void exploreCave(int N) {
    int S[N],D[N];
    for(int i = 0;i < N;i++)S[i] = 0;
    bool valid[N];
    for(int i = 0;i < N;i++)valid[i] = 0;
    for(int i = 0;i < N;i++){
        int p = tryCombination(S);
        int l = 0,r = N - 1,ans = -1;
        while(l <= r){
            int m = (l + r)/2;
            int* comb = filp(S,valid,N,l,m);
            int s = tryCombination(comb);
            if(p == s)l = m + 1;
            else{
                ans = m;
                r = m;
            }
        }
        D[i] = ans;
        if(p == i)S[ans] = 1 - S[ans];
    }
    answer(S,D);   
}

Compilation message (stderr)

cave.cpp: In function 'int* filp(int*, bool*, int, int, int)':
cave.cpp:14:12: warning: address of local variable 'comb' returned [-Wreturn-local-addr]
   14 |     return comb;
      |            ^~~~
cave.cpp:7:9: note: declared here
    7 |     int comb[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...