Submission #1282227

#TimeUsernameProblemLanguageResultExecution timeMemory
1282227mdobricColors (BOI20_colors)C++20
0 / 100
1 ms432 KiB
#include <bits/stdc++.h> using namespace std; long long n; long long rez = 1, ans; vector <long long> solve (long long x){ vector <long long> drugi; if (x == 2){ drugi.push_back(1); drugi.push_back(2); return drugi; } drugi = solve((x + 1) / 2); int vel = drugi.size(); if (drugi[vel - 1] < drugi[vel - 2]) drugi.push_back(drugi[vel - 1] + (x + 1) / 2); else{ long long zadnji = drugi[vel - 1]; drugi.pop_back(); drugi.push_back(zadnji + (x + 1) / 2); drugi.push_back(zadnji); for (int i = 0; i < vel - 1; i++) drugi[i] += (x + 1) / 2; } return drugi; } int main (void){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; vector <long long> v = solve(n); reverse(v.begin(), v.end()); cout << "? " << v[0] << endl; cin >> ans; for (int i = 1; i < v.size(); i++){ cout << "? " << v[i] << endl; cin >> ans; if (ans == 0){ rez += (n + 1) / 2; if (v[i - 1] > v[i]) for (int j = i + 1; j < v.size(); j+=2) v[j] += (n + 1) / 2; else for (int j = i + 1; j < v.size(); j+=2) v[j] -= (n + 1) / 2; } n = (n + 1) / 2; } cout << "= " << rez << endl; return 0; }
#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...