Codeforces ~ 1063C ~ Dwarves, Hats and Extrasensory Abilities (互動題,二分)
阿新 • • 發佈:2018-12-15
題意
互動題。N次,讓你每次輸出一個點的座標,然後他告訴你當前點的顏色(黑或白)。使得可以找到一條直線把黑點和白點分隔開。最終輸出這條直線過的兩個點。輸入輸出均為正數,分為為0~1e9
思路
我們把所有點擺在y=2的這條線上。輸出這條直線的時候比較方便。
每次輸出中間點,然後其實就是個二分了?黑就是小了,白就是大了。
#include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { int T; cin >> T; T--; cout << (int)1e9 << " " << 2 << endl; fflush(stdout); string s; cin >> s; int l = 0, r = 1e9, t = (s == "white"); while (T--) { int m = (l + r) >> 1; cout << m << " " << 2 << endl; fflush(stdout); cin >> s; if ((s == "white") == t) r = m; else l = m; } cout << l << " " << 1 << " " << r << " " << 3 << endl; fflush(stdout); return 0; }