JOI 2020 - Treatment Project

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2500 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Vương quốc JOI có \(N\) ngôi nhà, đánh số từ \(1\) đến \(N\), nằm trên một đường thẳng theo thứ tự số hiệu. Mỗi nhà có một người dân; người sống trong nhà \(x\) (\(1 \le x \le N\)) được gọi là người dân \(x\).

Gần đây, một loại vi-rút mới xuất hiện và tất cả người dân đều bị nhiễm. Có \(M\) dự án điều trị được đề xuất. Dự án thứ \(i\) (\(1 \le i \le M\)) có chi phí \(C_i\). Nếu thực hiện dự án này thì vào buổi tối ngày thứ \(T_i\), mọi người dân \(x\) thỏa mãn \(L_i \le x \le R_i\) đang nhiễm vi-rút sẽ được chữa khỏi.

Vi-rút lây giữa các người dân ở nhà kề nhau như sau: nếu người dân \(x\) (\(1 \le x \le N\)) bị nhiễm vào buổi sáng của một ngày, thì đến buổi trưa cùng ngày, người dân \(x-1\) (nếu \(x \ge 2\)) và người dân \(x+1\) (nếu \(x \le N-1\)) sẽ bị nhiễm. Người đã được chữa khỏi vẫn có thể bị nhiễm lại.

Bạn là một bộ trưởng của vương quốc và phải chọn một số dự án sao cho sau khi tất cả dự án đã chọn được thực hiện, không còn người dân nào nhiễm vi-rút. Có thể thực hiện nhiều dự án trong cùng một ngày.

Cho số ngôi nhà và thông tin các dự án, hãy xác định có thể đạt được điều kiện trên hay không; nếu có, hãy tính tổng chi phí nhỏ nhất.

Dữ liệu vào

Đọc từ đầu vào chuẩn. Tất cả giá trị đều là số nguyên, theo định dạng:

N M
T_1 L_1 R_1 C_1
...
T_M L_M R_M C_M

Dữ liệu ra

In ra một dòng. Nếu không thể thỏa mãn điều kiện, in ra \(-1\); ngược lại, in ra tổng chi phí nhỏ nhất.

Ràng buộc

  • \(1 \le N \le 1\,000\,000\,000\).
  • \(1 \le M \le 100\,000\).
  • \(1 \le T_i \le 1\,000\,000\,000\) với \(1 \le i \le M\).
  • \(1 \le L_i \le R_i \le N\) với \(1 \le i \le M\).
  • \(1 \le C_i \le 1\,000\,000\,000\) với \(1 \le i \le M\).

Phân nhóm

Các ràng buộc chung áp dụng cho mọi nhóm.

  1. \(4\) điểm: \(T_i=1\) với mọi \(1 \le i \le M\)
  2. \(5\) điểm: \(M \le 16\)
  3. \(30\) điểm: \(M \le 5000\)
  4. \(61\) điểm: Không có

Ví dụ

Ví dụ 1

Input
10 5
2 5 10 3
1 1 6 5
5 2 8 3
7 6 10 4
4 1 3 1
Output
7
Giải thích

Có thể thực hiện các dự án như sau:

  • Tối ngày \(2\), thực hiện dự án \(1\), chữa khỏi cho các người dân \(5,6,7,8,9,10\). Các người dân \(1,2,3,4\) vẫn bị nhiễm.
  • Trưa ngày \(3\), người dân \(5\) bị nhiễm. Lúc này các người dân \(1,2,3,4,5\) bị nhiễm.
  • Trưa ngày \(4\), người dân \(6\) bị nhiễm. Lúc này các người dân \(1,2,3,4,5,6\) bị nhiễm.
  • Tối ngày \(4\), thực hiện dự án \(5\), chữa khỏi cho các người dân \(1,2,3\). Các người dân \(4,5,6\) vẫn bị nhiễm.
  • Trưa ngày \(5\), các người dân \(3\)\(7\) bị nhiễm. Lúc này các người dân \(3,4,5,6,7\) bị nhiễm.
  • Tối ngày \(5\), thực hiện dự án \(3\), chữa khỏi cho các người dân \(3,4,5,6,7\). Sau đó không còn ai bị nhiễm.

Tổng chi phí của các dự án \(1\), \(3\)\(5\)\(7\). Không có cách thỏa mãn điều kiện với tổng chi phí nhỏ hơn \(7\), nên in ra \(7\).

Ví dụ 2

Input
10 5
2 6 10 3
1 1 5 5
5 2 7 3
8 6 10 4
4 1 3 1
Output
-1
Giải thích

Không thể thỏa mãn điều kiện nên in ra \(-1\).

Ví dụ 3

Input
10 5
1 5 10 4
1 1 6 5
1 4 8 3
1 6 10 3
1 1 3 1
Output
7
Giải thích

Ví dụ này thỏa mãn ràng buộc của nhóm \(1\).

Nguồn

JOI 2019/2020, Trại huấn luyện mùa xuân, ngày thi 4. Đề gốc của Ủy ban Olympic Tin học Nhật Bản, được cung cấp theo giấy phép CC BY-SA 4.0. Bản tiếng Việt được dịch từ đề tiếng Anh chính thức.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.