Mô tả bài toán
Sách n chương, chương i từ trang l đến r (mảng P). Đã đọc đến trang k-1, trang k là trang đầu chưa đọc. Đếm số chương chưa đọc xong (chứa trang ≥ k).
Ví dụ
P=[[1,3],[4,7],[8,11]], k=4 → Chương 1 đọc xong, chương 2,3 chưa xong → 2.
Thuật toán
Tìm chương i chứa trang k (l ≤ k ≤ r). Số chương chưa xong = n - i + 1 (1-based).
Code C++
#include <bits/stdc++.h>
using namespace std;
int solve(vector> P, int k) {
int n = P.size();
for (int i = 1; i <= n; i++) {
if (k >= P[i-1][0] && k <= P[i-1][1])
return n - i + 1;
}
return 0;
}
int main() {
vector> P = {{1,3},{4,7},{8,11}};
int k = 4;
cout << solve(P, k) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: {{1,3},{4,7},{8,11}}, 4
Output: 2