PHÂN SỐ TĂNG

Xét bài toán: Cho \(n\) phân số \(\frac{a_{1}}{b_{1}},\ldots,\frac{a_{n}}{b_{n}}\) \((a_{i},b_{i}\ \)nguyên dương), hãy tìm dãy chỉ số

\(1 \leq i_{1} < i_{2} < \ldots < i_{k} \leq n\ \)sao cho \(\frac{a_{i_{1}}}{b_{i_{1}}} < \frac{a_{i_{2}}}{b_{i_{2}}} < \ldots < \frac{a_{i_{k}}}{b_{i_{k}}}\)\(k\) lớn nhất có thể.

Bài toán trên được mở rộng như sau: Có thể đảo lại một phân số nếu muốn (phân số \(\frac{a_{i}}{b_{i}}\) đảo lại thành phân số \(\frac{b_{i}}{a_{i}}\)), sau đó tìm dãy chỉ số thỏa mãn đề bài mà \(k\) lớn nhất có thể.

Yêu cầu: Cho \(n\) phân số và số nguyên \(w\), trong đó 𝑤 = 0 nghĩa là không được phép đảo bất kỳ một phân số nào (bài toán ban đầu) hoặc 𝑤 = 1 nếu được phép đảo không quá một phân số (bài toán mở rộng), hãy đưa ra giá trị 𝑘 lớn nhất có thể.

Dữ liệu:

+ Dòng đầu ghi hai số nguyên \(n,w(1 \leq n \leq 10^{3};0 \leq w \leq 1)\);

+ Dòng thứ \(i\) trong \(n\) dòng tiếp theo chứa hai số nguyên dương \(a_{i},b_{i}\) lần lượt là tử số và mẫu số của phân số thứ \(i\) \((1 \leq i \leq n,{0 < a}_{i},b_{i} \leq 10^{9})\).

Kết quả: Ghi một số nguyên duy nhất là giá trị \(k\) lớn nhất tìm được.

Ví dụ:

Input Output Input Output
4 0
5 1
1 3
3 2
1 2
2 4 1
5 1
1 3
3 2
1 2
3

Ràng buộc:

  • \(25\%\) số test ứng với \(25\%\) số điểm của bài thỏa mãn: \(n \leq 10,w = 0\);

  • \(25\%\) số test ứng với \(25\%\) số điểm của bài thỏa mãn: \(n \leq 10,w = 1\);

  • \(25\%\) số test ứng với \(25\%\) số điểm của bài thỏa mãn: \(10 < n \leq 10^{3},w = 0\);

  • \(25\%\) số test ứng với \(25\%\) số điểm của bài thoả mãn: \(10 < n \leq 10^{3},w = 1\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]