# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
614174 | cadmiumsky | Colors (BOI20_colors) | C++14 | 1 ms | 208 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define int long long
using namespace std;
int c;
int last;
int amog = 1;
int u = 19;
unordered_set<int> used;
bool query(int x) {
//#ifdef DLOCAL
//int delta = abs(last - x);
//last = x;
//if(used.count(x + amog))
//assert(false);
//used.insert(x + amog);
//if(delta < c)
//return 0;
//else
//return 1;
//#endif
cout << "? " << x + amog << endl;
last = x;
cin >> x;
return x;
}
signed main() {
int n;
cin >> n;
//#ifdef DLOCAL
//cin >> c;
//#endif
n--;
vector<int> bits;
int msk = 0;
for(int i = 60; i >= 0; i--) {
if((1LL << i) & n)
bits.push_back(i),
(bits.size() % 2 == 0? msk |= (1LL << i): 0);
}
//for(auto x : bits)
//cerr << x << ' ';
//cerr << '\n';
int mine = 0, lelim = -1, toggle = 0;
query(msk);
for(int i = 0, x; i < bits.size(); i++) {
if(i == bits.size() - 1)
break;
x = bits[i];
//cerr << toggle << '\n';
if(toggle) {
if(!query(last - mine - (1 << x)))
mine += (1LL << x);
else
break;
}
else {
if(!query((1LL << x) + mine + last))
mine += (1LL << x);
else
break;
}
lelim = i;
toggle ^= 1;
}
lelim++;
assert(lelim != bits.size());
lelim = bits[lelim] - 1;
if(lelim >= 0) {
//lelim--;
amog = 0;
query((1LL << lelim));
toggle = 0;
//lelim++;
for(int i = lelim; i >= 0; i--) {
if(toggle == 0) {
if(!query(last + (1LL << i) + mine ))
mine += (1LL << i);
}
else {
if(!query(last - mine - (1LL << i)))
mine += (1LL << i);
}
toggle ^= 1;
}
}
cout << "= " << mine + 1 << endl;
}
// n = 24, C = 19
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |