Submission #113703

#TimeUsernameProblemLanguageResultExecution timeMemory
113703thebesCave (IOI13_cave)C++14
100 / 100
416 ms640 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int MN = 5005; int *arr, N, i, tmp, d[MN], s[MN]; void st(int l,int r,int v){ for(;l<=r;l++){ if(d[l]!=-1) arr[l]=d[l]; else arr[l]=v; } } void rec(int l,int r,int id,int val){ if(l == r){ s[l] = id; d[l] = val; st(l,r,0); return; } int m = l+r>>1; st(l, m, !val); int v = tryCombination(arr); st(l, m, val); if(v == id) rec(l, m, id, val); else rec(m+1, r, id, val); } void exploreCave(int n){ N = n; memset(d, -1, sizeof(d)); arr = (int*)malloc(N*sizeof(int)); for(i=0;i<N;i++){ int val = 0; st(0,N-1,0); if(tryCombination(arr)==i) val = 1; else val = 0; st(0,N-1,val); rec(0,N-1,i,val); } answer(d, s); }

Compilation message (stderr)

cave.cpp: In function 'void rec(int, int, int, int)':
cave.cpp:20:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int m = l+r>>1;
          ~^~
#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...