trang chủ / đề bài / tq_tst_25_f

Khám phá vũ trụ

Đề bài

Mô tả

Tí và Tèo là hai phi hành gia của trung tâm vũ trụ Quốc Tế. Họ đang tham gia một sứ mệnh quan trọng: khám phá các hành tinh xa xôi để thu thập năng lượng phục vụ cho Trái đất.

Có n hành tinh được đánh số từ 1 đến n mà Tí và Tèo có thể hạ cánh. Khi khám phá hành tinh thứ i, họ sẽ thu được xi đơn vị năng lượng nếu xi>0 hoặc sẽ mất đi |xi| đơn vị năng lượng nếu xi<0 do điều kiện khắc nghiệt. Mỗi hành tinh được khám phá nhiều nhất một lần.

Tuy nhiên, không phải hành tinh nào cũng có thể đến ngay lập tức. Một số hành tinh chỉ có thể hạ cánh sau khi đã khám phá xong một hành tinh khác. Cụ thể, với mỗi hành tinh thứ i có tham số pi (0≤pi<i), nếu pi=0 hành tinh i có thể khám phá bất kỳ lúc nào mà không phụ thuộc vào hành tinh khác, ngược lại nếu pi≠0 thì muốn đến hành tinh i, họ phải đến hành tinh pi trước.

Ban đầu, con tàu vũ trụ của Tí và Tèo có s đơn vị năng lượng. Trong suốt hành trình, năng lượng trên tàu không bao giờ được âm. Mục tiêu của họ là khám phá một số hành tinh (theo một thứ tự tùy chọn) sao cho tổng lượng năng lượng thu được, tức là năng lượng cuối cùng trừ đi s, là lớn nhất có thể. Họ có thể không khám phá hành tinh nào, khi đó lượng năng lượng thu được là 0.

Yêu cầu: Hãy lập trình giúp Tí và Tèo tính toán lượng năng lượng tối đa mà họ có thể thu được sau chuyến khám phá các hành tinh.

Dữ liệu vào

  • Dòng 1: Chứa hai số nguyên n,s (1≤n≤3×105; 0≤s≤109).
  • Dòng thứ i trong n dòng sau mỗi dòng gồm hai số nguyên xi,pi (|xi|≤109; 0≤pi<i; i=1,2,…,n).

Dữ liệu ra

In ra một số nguyên duy nhất là năng lượng tối đa có thể thu được.

Ràng buộc

  • 1≤n≤3×105; 0≤s≤109.
  • |xi|≤109; 0≤pi<i.

Subtasks

Điểm được tính theo từng test.

  • Subtask 1 (13% số test): s=109.
  • Subtask 2 (14% số test): n≤2000; pi=0 hoặc pi=i−1 với mọi i=1…n.
  • Subtask 3 (16% số test): pi=0 hoặc pi=i−1 với mọi i=1…n.
  • Subtask 4 (26% số test): n≤2000.
  • Subtask 5 (31% số test): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
6 1
3 0
-3 1
-5 0
2 1
6 3
-4 5
6 Khám phá hành tinh 1: năng lượng từ 1→4. Khám phá hành tinh 4 (phụ thuộc hành tinh 1): năng lượng từ 4→6. Khám phá hành tinh 3: năng lượng từ 6→1. Khám phá hành tinh 5 (phụ thuộc hành tinh 3): năng lượng từ 1→7. Tổng năng lượng thu được: 7−1=6.
3 2
-3 0
5 1
1 0
3 Ví dụ bổ sung. Chưa thể đến hành tinh 1 ngay (năng lượng sẽ âm). Khám phá hành tinh 3: 2→3, rồi hành tinh 1: 3→0, rồi hành tinh 2: 0→5. Thu được 5−2=3.
2 0
-1 0
10 1
0 Ví dụ bổ sung. Không thể khám phá hành tinh 1 vì năng lượng sẽ âm, nên cũng không đến được hành tinh 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.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