trang chủ / bài tập / songcomp

Nén bài hát

Đề bài

Mô tả

Ivan có n bài hát trong điện thoại. Bài hát thứ i có kích thước ai byte. Ivan còn có một chiếc USB chứa được tối đa m byte.

Ivan muốn chép toàn bộ n bài hát vào USB. Anh có thể nén một số bài hát: nếu nén bài hát thứ i thì kích thước của nó giảm từ ai xuống bi byte (với bi<ai).

Ivan có thể nén một tập con bất kỳ các bài hát (không nhất thiết liên tiếp, có thể là tập rỗng), rồi chép tất cả các bài hát vào USB nếu tổng kích thước của chúng không vượt quá m.

Hãy tìm số lượng bài hát ít nhất cần nén để tất cả các bài hát vừa với USB (tổng kích thước không vượt quá m). Nếu ngay cả khi nén tất cả các bài hát mà vẫn không vừa, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số bài hát và dung lượng của USB.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên aibi: kích thước ban đầu và kích thước sau khi nén của bài hát thứ i.

Dữ liệu ra

In ra một số nguyên: số bài hát ít nhất cần nén để tất cả vừa với USB, hoặc 1 nếu không thể.

Ràng buộc

  • 1n105
  • 1m109
  • 1bi<ai109

Ví dụ

Input Output Giải thích
4 21
10 8
7 4
3 1
5 4
2 Nén bài 1 và bài 3: tổng kích thước là 8+7+1+5=2121. Không thể vừa nếu chỉ nén đúng một bài.
4 16
10 8
7 4
3 1
5 4
-1 Ngay cả khi nén tất cả, tổng là 8+4+1+4=17>16.
1 1000000000
1000000000 1
0 Kích thước ban đầu 109109, không cần nén bài nào.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0