Submission #311649

#TimeUsernameProblemLanguageResultExecution timeMemory
311649saarang123Cave (IOI13_cave)C++14
13 / 100
16 ms512 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; using ll = long long; using ld = long double; #define all(x) x.begin(), x.end() #define pb push_back #define mp make_pair template<class T> bool remin(T& a, const T& b) { return a > b ? a = b, 1 : 0; } template<class T> bool remax(T& a, const T& b) { return a < b ? a = b, 1 : 0; } std::mt19937 rng((int) std::chrono::steady_clock::now().time_since_epoch().count()); /* void answer(int s[], int d[]) { int n = sizeof(s)/ sizeof(s[0]); cout << "Code: "; for(int i = 0; i < n; i++) cout << s[i] << " "; cout << endl; cout << "Doors: "; for(int i = 0; i < n; i++) cout << d[i] << " "; cout << endl; cout << "Exit" << endl; } int tryCombination(int s[]) { size_t n = (2 * sizeof(s) / sizeof(s[0])); cout << "Query for doors: " << sizeof(s) << " " << sizeof(s[0]) << endl; for(int i = 0; i < n; i++) cout << s[i] << " "; cout << endl; int x; cin >> x; return x; }*/ int binsearch(int a[], int k) { int n = sizeof(a) / sizeof(a[0]); int mn = 0, mx = n - 1; while(mn < mx) { int mid = (mn + mx) >> 1; for(int i = mn; i <= mid; i++) a[i] ^= 1; int x = tryCombination(a); for(int i = mn; i <= mid; i++) a[i] ^= 1; if(x != k) mx = mid; else mn = mid + 1; } return mn; } void exploreCave(int n) { //cout << n << endl; int a[n], s[n], d[n]; for(int i = 0; i < n; i++) a[i] = 0, s[i] = 0, d[i] = -1; int x = tryCombination(a); while(x != -1) { int id = binsearch(a, x); d[id] = x; a[id] ^= 1; x = tryCombination(a); } for(int i = 0; i < n; i++) s[i] = a[i]; for(int i = 0; i < n; i++) { if(d[i] != -1) continue; s[i] ^= 1; d[i] = tryCombination(s); s[i] ^= 1; } answer(s, d); } /* signed main() { std::ios::sync_with_stdio(0); std::cout.tie(0); std::cin.tie(0); int n, i, j; cin >> n; exploreCave(n); return 0; }*/

Compilation message (stderr)

cave.cpp: In function 'int binsearch(int*, int)':
cave.cpp:34:21: warning: 'sizeof' on array function parameter 'a' will return size of 'int*' [-Wsizeof-array-argument]
   34 |     int n = sizeof(a) / sizeof(a[0]);
      |                     ^
cave.cpp:33:19: note: declared here
   33 | int binsearch(int a[], int k) {
      |               ~~~~^~~
#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...