JOI 2012 - Fish

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: 2200 (p) Thời gian: 1.5s Bộ nhớ: 64M Input: bàn phím Output: màn hình

JOI chợt nảy ra ý định nuôi cá. Cửa hàng thú cưng gần nhà cậu đang bán \(N\) con cá. Con cá thứ \(i\) dài \(L_i\) cm và có một trong ba màu: đỏ, xanh lá cây hoặc xanh lam. JOI quyết định chọn ít nhất một con trong số đó để nuôi ở nhà.

Tuy nhiên, nếu nuôi chung cá lớn và cá nhỏ, cá lớn có thể ăn mất cá nhỏ. Cụ thể, nếu chiều dài của cá \(X\) lớn hơn hoặc bằng hai lần chiều dài của cá \(Y\), thì khi nuôi chung, \(X\) sẽ ăn \(Y\). Vì vậy, JOI không được chọn đồng thời hai con cá như thế.

JOI muốn biết có bao nhiêu tổ hợp màu sắc có thể xuất hiện trong những con cá cậu chọn nuôi. Hai tổ hợp được coi là khác nhau nếu số cá của ít nhất một trong ba màu đỏ, xanh lá cây, xanh lam khác nhau. Những cách chọn cá khác nhau nhưng có cùng số cá ở từng màu chỉ được tính là một tổ hợp.

Yêu cầu

Cho chiều dài và màu sắc của từng con cá trong cửa hàng, hãy tính số tổ hợp màu sắc có thể có.

Dữ liệu vào

Đọc từ đầu vào chuẩn:

  • Dòng đầu chứa số nguyên \(N\), là số cá được bán.
  • Dòng thứ \(i+1\) (\(1\le i\le N\)) chứa số nguyên \(L_i\) và ký tự \(C_i\), cách nhau bởi dấu cách. \(L_i\) là chiều dài tính bằng cm; R, G, B lần lượt biểu thị màu đỏ, xanh lá cây, xanh lam.

Dữ liệu ra

In ra đầu ra chuẩn trên một dòng số tổ hợp màu sắc có thể có khi chọn ít nhất một con cá và không có con nào ăn con nào.

Ràng buộc

  • \(1\le N\le500\,000\).
  • \(1\le L_i\le1\,000\,000\,000\) với \(1\le i\le N\).
  • \(C_i\) là một trong các ký tự R, G, B.
  • \(N\) và mọi \(L_i\) đều là số nguyên.

Phân nhóm

  • Các bộ dữ liệu chiếm \(10\%\) tổng số điểm thỏa mãn \(N\le100\).
  • Các bộ dữ liệu chiếm \(30\%\) tổng số điểm thỏa mãn \(N\le2\,000\).

Ví dụ

Ví dụ 1

Input
4
10 R
4 G
8 B
5 B
Output
6
Giải thích

Con cá thứ \(1\) sẽ ăn con cá thứ \(2\), nên không thể nuôi chúng cùng nhau. Tương tự, không thể nuôi chung cặp cá thứ \(1\) và thứ \(4\), hoặc cặp cá thứ \(2\) và thứ \(3\). Có \(6\) tổ hợp màu sắc: một cá đỏ; một cá xanh lá cây; một cá xanh lam; một cá đỏ và một cá xanh lam; một cá xanh lá cây và một cá xanh lam; hai cá xanh lam.

Ví dụ 2

Input
10
26 B
10 B
16 G
20 R
6 R
5 G
13 G
40 R
8 R
33 R
Output
13

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: