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

Người Nhận Quà Tham Lam

Đề bài

Mô tả

N người xếp hàng theo thứ tự từ 1 đến N. Mỗi người i có một số nguyên di (0di<N). Trò chơi diễn ra vô hạn như sau:

  • Người đứng đầu hàng tặng quà cho mọi người (tức là người đó nhận được lượt tặng quà) rồi bước ra khỏi đầu hàng và chen vào vị trí di+1 tính từ đầu hàng (vượt qua di người).
  • Quá trình lặp lại mãi mãi.

Hãy tính xem có bao nhiêu người không bao giờ đến được đầu hàng để tặng quà.

Dữ liệu vào

  • Dòng đầu tiên gồm một số nguyên N.
  • Dòng thứ hai gồm N số nguyên d1,d2,,dN.

Dữ liệu ra

Một số nguyên duy nhất — số lượng người không bao giờ nhận được lượt tặng quà.

Ràng buộc

  • 1N105
  • 0di<N

Ví dụ

Input Output Giải thích
3
1 2 0
1 Ban đầu hàng: [1, 2, 3] với d=[1,2,0].
Người 1 (d=1) nhận quà, chen vào sau 1 người → hàng: [2, 1, 3].
Người 2 (d=2) nhận quà, chen vào sau 2 người → hàng: [1, 3, 2].
Người 1 (d=1) nhận quà, chen vào sau 1 người → hàng: [3, 1, 2].
Người 3 (d=0) nhận quà... Nhưng thực ra người 3 có d3=0, tức số nhảy j3=30=3>N1, nên người 3 luôn bị người 1 và 2 chen trước. Chỉ có người 3 không bao giờ đến được đầu hàng.
100
42 8 40 74 5 34 2 12 38 37 73 27 0 82 45 35 96 27 40 21 28 64 61 42 53 95 53 57 74 99 70 69 7 10 43 64 44 45 77 35 34 2 62 34 36 8 22 33 87 62 54 67 78 67 9 32 62 63 41 89 62 11 58 21 22 1 37 18 46 66 53 80 68 68 67 5 28 89 90 15 3 96 82 34 63 44 18 78 7 59 67 21 22 77 94 96 78 83 15 76
70 Trong 100 người, có 70 người không bao giờ nhận được lượt tặng quà.

Ghi chú

Khi một người chen hàng vào vị trí di+1, nếu di=0 thì người đó đứng ở đầu hàng ngay (nhưng cũng được tính là vừa nhận quà xong nên vào cuối hàng sau). Những người có số nhảy ji=Ndi nhỏ (tức chen vào gần đầu hàng) sẽ có lợi thế hơn và có xu hướng nhận quà liên tục, trong khi những người có ji lớn (chen vào gần cuối hàng) có thể không bao giờ lên được đầu hà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