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

Hoàn thành tất cả các dự án (bản dễ)

Đề bài

Mô tả

Polycarp là một freelancer với điểm uy tín ban đầu là r đơn vị.

n dự án. Để hoàn thành dự án thứ i, Polycarp cần có điểm uy tín ít nhấtai tại thời điểm bắt đầu dự án đó. Sau khi hoàn thành dự án thứ i, điểm uy tín của anh thay đổi đi bi đơn vị (tăng nếu bi>0, giảm nếu bi<0).

Ngoài ra, điểm uy tín của Polycarp không bao giờ được âm — sau khi hoàn thành mỗi dự án, điểm uy tín phải còn lại không âm.

Hãy xác định liệu có tồn tại một thứ tự thực hiện tất cả n dự án sao cho:

  • trước khi bắt đầu mỗi dự án, điểm uy tín hiện tại không nhỏ hơn yêu cầu ai của dự án đó;
  • sau khi hoàn thành mỗi dự án, điểm uy tín vẫn không âm.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nr — số dự án và điểm uy tín ban đầu.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên aibi — yêu cầu uy tín và mức thay đổi uy tín của dự án thứ i.

Dữ liệu ra

In ra "YES" nếu có thể hoàn thành tất cả các dự án, ngược lại in ra "NO".

Ràng buộc

  • 1n100
  • 1r30000
  • 1ai30000
  • 300bi300

Ví dụ

Input Output Giải thích
3 5
4 -5
4 -2
1 3
YES Thứ tự khả thi: dự án 2, 3, 1. Bắt đầu r=5; sau dự án 2: 52=3; sau dự án 3: 3+3=6; sau dự án 1: 65=10.
3 4
4 6
10 -2
8 -1
YES Thứ tự khả thi: 1, 2, 3. Uy tín lần lượt là 41087.
3 10
10 0
10 -10
30 0
NO Dự án yêu cầu a=30 không bao giờ thực hiện được vì uy tín tối đa đạt được chỉ là 10.
4 4
5 2
5 -3
2 1
4 -2
YES Thứ tự khả thi: 3, 1, 4, 2.

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