Bài toán: Có n học sinh, k tỷ lệ chứng chỉ/meda. Số chứng chỉ = k × số meda. Số người thắng ≤ n/2. Tìm số meda, chứng chỉ, không thắng tối đa.
Giải pháp
Gọi x = số meda. Thì chứng chỉ = k*x. Tổng thắng = x + k*x = x*(k+1) ≤ n/2.
→ x = floor((n/2) / (k+1)).
Kết quả: x, k*x, n - x*(k+1).
Code C++
#include <bits/stdc++.h>
using namespace std;
void solve(int n, int k) {
int x = (n / 2) / (1 + k);
cout << x << ", " << (k * x) << ", " << (n - (x + k * x));
}
int main() {
int n = 18, k = 2;
solve(n, k); // Output: 3, 6, 9
return 0;
}
Input/Output
Input: 18, 2 Output: 3, 6, 9
Ý nghĩa: 3 meda, 6 chứng chỉ, 9 không thắng.