trang chủ / đề bài / thhv19_cvp_11_b

Phân số lớn nhất

Đề bài

Mô tả

Cho hai dãy số A và B, mỗi dãy có N phần tử, các phần tử của mỗi dãy số đều là số nguyên dương và có giá trị không lớn hơn 106.

Cần tìm giá trị SASB lớn nhất có thể, trong đó SA là tổng của K phần tử trong A, SB là tổng của K phần tử trong B. Lưu ý, nếu đã chọn phần tử Ai thì cũng phải chọn phần tử Bi tương ứng. Nói cách khác, ta chọn K chỉ số đôi một khác nhau i1,i2,…,iK, khi đó SA=Ai1+Ai2+…+AiK và SB=Bi1+Bi2+…+BiK.

Giả sử giá trị lớn nhất trên được biểu diễn dưới dạng phân số tối giản PQ, bạn cần in ra giá trị P và Q này.

Dữ liệu vào

  • Dòng đầu tiên ghi hai số nguyên N và K (1≤K≤N≤5000).
  • N dòng tiếp theo, dòng thứ i ghi hai số nguyên dương Ai và Bi (Ai,Bi≤106).

Dữ liệu ra

In ra hai số nguyên P và Q (cách nhau một dấu cách) với ý nghĩa như mô tả.

Ràng buộc

  • 1≤K≤N≤5000.
  • 1≤Ai,Bi≤106.

Ví dụ

Input Output Giải thích
3 2
3 1
1 2
1 1
2 1 Chọn chỉ số 1 và 3: 3+11+1=42=21.
3 2
2 1
1000 999
1 1
3 2 Ví dụ bổ sung (không có trong đề gốc). Chọn chỉ số 1 và 3 được 32. Chọn hai chỉ số có tỉ số Ai/Bi riêng lớn nhất (1 và 2) chỉ được 10021000.
4 4
4 3
9 7
6 5
5 9
1 1 Ví dụ bổ sung (không có trong đề gốc). K=N nên phải chọn tất cả: 2424, tối giản thành 11.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0