Bài toán: Trận đấu 90 phút. Mảng A lưu các phút "thú vị". Nếu 15 phút liên tiếp không có phút thú vị → tắt TV. Tính thời gian xem.
Giải pháp: Duyệt A (đã sort). Nếu khoảng cách 2 phần tử liên tiếp > 15 → dừng tại prev + 15. Giới hạn max 90.
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
int prev = 0;
for (int t : A) {
if (t - prev > 15) break;
prev = t;
}
return min(prev + 15, 90);
}
int main() {
vector<int> A = {7, 20, 88};
cout << solve(A) << endl; // 35
return 0;
}
Kết quả
35
Giải thích: 7→20 (khoảng 13 ≤15), 20→88 (khoảng 68 >15) → dừng ở 20+15=35.