JOI 2015 - Card Game is Great Fun

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: 2300 (p) Thời gian: 3.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Anna thường chơi bài cùng người bạn Bruno. Sau khi chán các trò chơi dành cho hai người, cô nghĩ ra một trò chơi bài có thể chơi một mình.

Ban đầu có \(N\) lá bài nhiều màu được xếp thành một hàng. Mỗi lá bài có một số nguyên được viết trên đó và có một giá trị. Màu sắc cũng được biểu diễn bằng số nguyên. Lá bài thứ \(i\) tính từ đầu hàng có màu \(C_i\), số \(A_i\) và giá trị \(V_i\).

Ban đầu chồng bài của Anna rỗng. Cô lặp lại thao tác sau:

  • Chọn lá bài thứ nhất hoặc thứ ba tính từ đầu hàng. Nếu chồng bài đang không rỗng, cô chỉ được chọn một lá bài có màu hoặc số ghi trên bài trùng với lá trên cùng của chồng bài. Lấy lá đã chọn khỏi hàng và đặt nó lên trên cùng chồng bài.

Trò chơi kết thúc khi không còn lá bài nào có thể chọn. Điểm của Anna là tổng giá trị các lá trong chồng bài khi trò chơi kết thúc.

Yêu cầu

Cho thông tin các lá bài lúc bắt đầu. Hãy tìm số điểm lớn nhất Anna có thể đạt được.

Dữ liệu vào

  • Dòng đầu chứa số nguyên \(N\).
  • Trong \(N\) dòng tiếp theo, dòng thứ \(i\) chứa ba số nguyên \(C_i,A_i,V_i\), lần lượt là màu, số ghi trên bài và giá trị của lá bài thứ \(i\).

Dữ liệu ra

In ra một số nguyên là số điểm lớn nhất Anna có thể đạt được.

Ràng buộc

  • \(1 \le N \le 500\).
  • \(1 \le C_i \le 500\) với mọi \(1 \le i \le N\).
  • \(1 \le A_i \le 500\) với mọi \(1 \le i \le N\).
  • \(1 \le V_i \le 1\,000\,000\) với mọi \(1 \le i \le N\).

Phân nhóm

  • Nhóm 1 (10 điểm): \(N \le 20\)
  • Nhóm 2 (15 điểm): \(N \le 50\)
  • Nhóm 3 (75 điểm): Không có ràng buộc bổ sung

Ví dụ

Ví dụ 1

Input
5
1 3 2
4 2 9
1 4 6
2 3 3
2 2 1
Output
15
Giải thích

Ký hiệu một lá có màu \(c\), số \(a\) và giá trị \(v\)\((c,a,v)\). Anna có thể đạt điểm lớn nhất như sau:

  1. Lấy lá thứ nhất \((1,3,2)\), nhận \(2\) điểm.
  2. Lấy lá thứ ba \((2,3,3)\), nhận \(3\) điểm.
  3. Lấy lá thứ ba \((2,2,1)\), nhận \(1\) điểm.
  4. Lấy lá thứ nhất \((4,2,9)\), nhận \(9\) điểm.

Ví dụ 2

Input
8
11 5 31
2 8 19
2 9 2
11 8 45
4 8 22
4 2 23
6 9 58
6 2 5
Output
160

Bình luận

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

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

Kỳ thi: