Bài toán: Có 25 suất 결승. Mảng A chứa hạng của người chấp nhận (distinct). Tìm số người từ chối tối thiểu.
Quan sát: Nếu hạng cao nhất trong A là mx, thì ít nhất mx - 25 người trong top mx đã từ chối (vì chỉ có 25 suất). Kết quả = max(0, mx - 25).
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
int mx = 0;
for (int x : A) mx = max(mx, x);
return max(mx - 25, 0);
}
int main() {
vector<int> A = {2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,28};
cout << solve(A) << endl; // 3 (hạng 1, 13, 27 từ chối)
return 0;
}
Kết quả
3