Vô Địch Ngẫu Nhiên

Đề bài

Mô tả

n đấu thủ tham gia một giải đấu. Đấu thủ thứ i khởi đầu với ai xu (ai1).

Giải đấu gồm n1 trận, mỗi trận diễn ra như sau:

  • Chọn hai đấu thủ bất kỳ đang còn xu (số xu >0).
  • Người có nhiều xu hơn thắng trận. Nếu hai người đang có số xu bằng nhau, kết quả được chọn ngẫu nhiên.
  • Người thắng lấy toàn bộ số xu của người thua.

Người cuối cùng còn xu sẽ vô địch giải đấu.

Ban tổ chức muốn biết trước những đấu thủ nào có khả năng trở thành nhà vô địch, tức là có xác suất chiến thắng dương khi các trận đấu (và các quyết định ngẫu nhiên đi kèm) được lựa chọn thuận lợi nhất cho họ. Hãy liệt kê những đấu thủ này.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng thứ nhất chứa số nguyên n — số đấu thủ.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an — số xu ban đầu của mỗi đấu thủ.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra hai dòng:

  • Dòng thứ nhất: số lượng đấu thủ có xác suất vô địch dương.
  • Dòng thứ hai: chỉ số của các đấu thủ đó theo thứ tự tăng dần. Đấu thủ được đánh số từ 1 theo thứ tự xuất hiện trong dữ liệu vào.

Ràng buộc

  • 1t104
  • 1n2·105
  • 1ai109
  • Tổng n trên tất cả bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
2
4
1 2 4 3
5
1 1 1 1 1
3
2 3 4
5
1 2 3 4 5
Bộ 1: đấu thủ 1 chỉ có 1 xu, thua bất kỳ đối thủ nào trước khi kịp tích lũy nên không có cơ hội. Các đấu thủ 2, 3, 4 đều có thể vô địch nếu thứ tự trận đấu thuận lợi. Bộ 2: mọi đấu thủ đều có 1 xu nên ai cũng có thể vô địch nhờ các trận hòa.
1
1
2
1
1
Chỉ có một đấu thủ nên đấu thủ đó đương nhiên vô địch.

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 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