โจทย์: ดูแมทช์ 90 นาที ไม่มีพัก แต่ละนาทีสนุกหรือเบื่อ หากเบื่อติดต่อกัน 15 นาที จะปิดทีวีทันที มีนาทีสนุก n นาทีในอาร์เรย์ A หาเวลาที่ดูต่อเนื่อง
Input: A=[7,20,88] → Output: 35 (หลังนาทีที่ 20 ยังดูต่อจนถึง 35 แล้วปิด)
ขั้นตอนแก้
a[100], n := size of A
for i := 1 to n:
a[i] := A[i-1]
if a[i] - a[i-1] > 15: break
return min(a[i-1] + 15, 90)ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
int a[100], n = A.size();
for (int i = 1; i <= n; i++) {
a[i] = A[i-1];
if (a[i] - a[i-1] > 15) break;
}
return min(a[i-1] + 15, 90);
}
int main() {
vector<int> A = {7,20,88};
cout << solve(A) << endl;
}Input
{7,20,88}Output
35