题解

回收卫星

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define y1 y11
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define pdd pair<double, double>
#define mem(a, b) memset(a, b, sizeof(a))
#define debug(x) cerr << #x << " = " << x << "\n";
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//head

int main() {
    LL l = 0, r = 2e9, m = l+r+1 >> 1;
    int f;
    while(l < r) {
        cout << 0 << " " << m << " " << 0 << " " << 0 << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL x1 = m;
    l = 0, r = 2e9, m = l+r+1 >> 1;
    while(l < r) {
        cout << 0 << " " << -m << " " << 0 << " " << 0 << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL x2 = -m;
    LL x = (x1+x2)/2;
    l = 0, r = 2e9, m = l+r+1 >> 1;
    while(l < r) {
        cout << 0 << " " << x << " " << m << " " << 0 << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL y1 = m;
    l = 0, r = 2e9, m = l+r+1 >> 1;
    while(l < r) {
        cout << 0 << " " << x << " " << -m << " " << 0 << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL y2 = -m;
    LL y = (y1+y2)/2;
    l = 0, r = 2e9, m = l+r+1 >> 1;
    while(l < r) {
        cout << 0 << " " << x << " " << y << " " << m << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL z1 = m;
    l = 0, r = 2e9, m = l+r+1 >> 1;
    while(l < r) {
        cout << 0 << " " << x << " " << y << " " << -m << endl;
        cin >> f;
        if(f) l = m;
        else r = m-1;
        m = l+r+1 >> 1;
    }
    LL z2 = -m;
    LL z = (z1+z2)/2;
    cout << 1 << " " << x << " " << y << " " << z << endl;
    return 0;
}
View Code

相关文章:

  • 2022-01-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2021-07-02
  • 2022-12-23
  • 2022-02-17
猜你喜欢
  • 2021-04-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
  • 2022-12-23
  • 2021-06-09
相关资源
相似解决方案