Hướng dẫn cho THREE (OLP MT&TN 2023 Sơ Loại Không Chuyên)


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: Flower_On_Stone

Tutorial

Ta sẽ tham lam ghép \(1\) số ở tập hợp \(2\) với \(1\) số ở tập hợp \(1\) trước. Nếu còn dư lại bao nhiêu số ở tập hợp \(1\) thì ta sẽ ghép \(3\) số ở tập hợp \(1\) lại với nhau. Như vậy, kết quả của chúng ta sẽ là \(c+\min(a,b)+a-\Big\lfloor \frac{\min(a,b)}{3} \Big\rfloor\).

Độ phức tạp: \(\mathcal{O}(1)\).

Solution
C++
#include <bits/stdc++.h>

using namespace std;

int a, b, c;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cin >> a >> b >> c;
    cout << c + min(a, b) + (a - min(a, b)) / 3 << '\n';

    return 0;
}


Bình luận

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