Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

C++: Số khán giả đứng tại thời điểm t (sóng Mexico)

Bài toán: n khán giả. Thời điểm 1: KH1 đứng, 2: KH2 đứng,... k: KHk đứng. k+1: KHk+1 đứng, KH1 ngồi. k+2: KHk+2 đứng, KH2 ngồi,... Tìm số người đứng lúc t.

Công thức: min(t, k, n + k - t).

  • Giai đoạn 1 (t ≤ k): t người đứng.
  • Giai đoạn 2 (k < t ≤ n): k người đứng (cửa sổ trượt).
  • Giai đoạn 3 (t > n): n + k - t người đứng (giảm dần).

Code C++

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int k, int t) {
    return min({t, k, n + k - t});
}

int main() {
    cout << solve(10, 5, 3) << endl; // 3
    return 0;
}

Kết quả

3