trang chủ / bài tập / couplecov

Trò chơi ghép cặp

Đề bài

Mô tả

Trong một trò chơi may rủi, hai người chơi cùng nhau dựng một hình chữ nhật.

Trên bàn có một túi chứa n quả bóng, quả bóng thứ i được ghi số nguyên dương ai. Người chơi thứ nhất thò tay vào túi và lấy ngẫu nhiên một quả bóng, số ghi trên quả bóng đó là chiều rộng của hình chữ nhật. Quả bóng này không được trả lại túi. Sau đó người chơi thứ hai lấy tiếp một quả bóng khác, số ghi trên nó là chiều cao của hình chữ nhật.

Nếu diện tích của hình chữ nhật lớn hơn hoặc bằng ngưỡng p thì hai người chơi thắng, ngược lại họ thua.

Ban tổ chức muốn chọn giá trị p sao cho xác suất thắng không quá cao cũng không quá thấp, nên họ cần biết: với mỗi giá trị p, có bao nhiêu cách chọn cặp bóng giúp hai người chơi thắng.

Hai cách chọn được coi là khác nhau nếu quả bóng của người thứ nhất khác nhau hoặc quả bóng của người thứ hai khác nhau. Hai quả bóng khác nhau vẫn được coi là khác nhau ngay cả khi chúng ghi cùng một số.

Cho danh sách các số ghi trên bóng và m giá trị p, với mỗi giá trị hãy đếm số cặp bóng thắng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số quả bóng.
  • Dòng thứ hai chứa n số nguyên dương a1,a2,,an.
  • Dòng thứ ba chứa số nguyên m là số câu hỏi.
  • Dòng thứ tư chứa m số nguyên dương, số thứ j là giá trị p của câu hỏi thứ j.

Dữ liệu ra

In ra m dòng, dòng thứ j là số cặp bóng thắng ứng với giá trị p của câu hỏi thứ j.

Ràng buộc

  • 1n106
  • 1ai3·106
  • 1m106
  • 1p3·106

Ví dụ

Input Output Giải thích
5
4 2 6 1 3
4
1 3 5 8
20
18
14
10
5·4=20 cặp bóng có thứ tự. Với p=1 mọi cặp đều thắng. Với p=3 chỉ hai cặp (1,2)(2,1) có tích 2<3 nên thua, còn lại 18 cặp thắng. Với p=8 các cặp thắng là những cặp có tích 8, đếm được 10 cặp.
2
5 6
2
30 31
2
0
Chỉ có hai cặp (5,6)(6,5), đều cho tích 30. Với p=30 cả hai cặp đều thắng; với p=31 không cặp nào thắ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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0