Hướng dẫn cho ABCDEFG 13


Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.

Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.

Authors: quanghieu18112013

Trong \(3\) lần đầu tiên, bạn hãy đoán \(A+B, B+C, C+A\). Từ đó bạn sẽ tìm được \(A, B, C\).
Trong \(4\) lần đoán tiếp theo, bạn hãy đoán \(A+D, A+E, A+F, A+G\). Mà ta đã biết được giá trị của \(A\) nên ta sẽ đoán được \(D, E, F, G\).

C++
#include <bits/stdc++.h>
using namespace std;
long long S12, S23, S13;
vector<long long> ans(8);
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout << "? 1 2" << endl;
    cin >> S12;
    cout << "? 2 3" << endl;
    cin >> S23;
    cout << "? 1 3" << endl;
    cin >> S13;
    long long A = (S12 + S13 - S23) / 2;
    long long B = S12 - A;
    long long C = S13 - A;
    ans[1] = A;
    ans[2] = B;
    ans[3] = C;
    for (int i = 4; i <= 7; i++) {
        cout << "? 1 " << i << endl;
        long long S1i;
        cin >> S1i;
        ans[i] = S1i - A;
    }
    cout << "!";
    for (int i = 1; i <= 7; i++) cout << " " << ans[i];
    cout << endl;
    return 0;
}

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.