trang chủ / đề bài / voi14_mroad

Con đường Tùng Trúc

Đề bài

Mô tả

Địa điểm du lịch Dailai nổi tiếng với con đường Tùng-Trúc. Đó là một con đường dài và thẳng, dọc bên đường người ta trồng rất nhiều cây tùng và cây trúc. Với mục đích tạo điểm nhấn cho con đường, Ban quản lý khu du lịch muốn chọn một đoạn đường mà dọc theo nó có ít nhất a cây tùng và có ít nhất b cây trúc để trang trí. Sau khi khảo sát, Ban quản lý ghi nhận được vị trí của từng cây tùng và cây trúc. Trên con đường có tất cả n cây, không có hai cây nào ở cùng một vị trí. Cây thứ i ở vị trí có khoảng cách đến vị trí bắt đầu của con đường là di (i=1,2,…,n). Với kinh phí có hạn, Ban quản lý muốn chọn một đoạn đường thỏa mãn điều kiện đã nêu với độ dài là ngắn nhất.

Yêu cầu: Cho a, b và vị trí của n cây. Hãy tìm đoạn đường có độ dài ngắn nhất mà dọc theo đoạn đường đó có ít nhất a cây tùng và b cây trúc.

Dữ liệu vào

  • Dòng đầu chứa 3 số nguyên dương n, a, b (a+b≤n).
  • Dòng thứ i trong n dòng tiếp theo chứa hai số nguyên dương di và ki (di≤109), trong đó di là khoảng cách của cây tính từ vị trí bắt đầu của con đường, ki=1 nếu cây thứ i là cây tùng, ki=2 nếu là cây trúc.

Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra

In ra một số nguyên là độ dài đoạn đường ngắn nhất tìm được, quy ước in ra số −1 nếu không tồn tại đoạn đường nào thỏa mãn điều kiện đặt ra.

Ràng buộc

  • 1≤n≤300000; a,b≥1; a+b≤n.
  • 1≤di≤109, các di đôi một khác nhau; ki∈{1,2}.

Subtasks

  • Subtask 1 (30% số điểm): n≤300.
  • Subtask 2 (30% số điểm): n≤3000.
  • Subtask 3 (40% số điểm): n≤300000.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
7 2 2
20 2
30 1
25 1
35 1
60 2
65 2
10 1
35 Đoạn từ vị trí 30 đến 65 có hai cây tùng (30, 35) và hai cây trúc (60, 65).
5 2 1
5 2
1 2
9 1
3 2
7 2
-1 Cả con đường chỉ có một cây tùng.

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