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

Bước nhảy xa

Đề bài

Mô tả

Cho một mảng a gồm n phần tử. Trò chơi diễn ra như sau:

  • Chọn một chỉ số i (1in) làm vị trí xuất phát và đặt một quân cờ tại đó.
  • Trong khi in: cộng ai vào tổng điểm, rồi dịch quân cờ sang phải ai ô (thay i bằng i+ai).
  • Khi i>n, trò chơi kết thúc.

Bạn được tự do chọn vị trí xuất phát ban đầu. Hãy tìm tổng điểm lớn nhất có thể đạt được.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t (1t104) là số lượng bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n (1n2·105) là độ dài của mảng a.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ai109).

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

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng riêng tổng điểm lớn nhất đạt được khi chọn vị trí xuất phát một cách tối ưu.

Ràng buộc

  • 1t104
  • 1n2·105
  • 1ai109
  • Tổng n trên tất cả các bộ dữ liệu 2·105

Ví dụ

Input Output Giải thích
4
5
7 3 1 2 3
3
2 1 4
6
2 1000 2 3 995 1
5
1 1 1 1 1
7
6
1000
5
Bộ 1: xuất phát tại i=1, cộng a1=7 rồi nhảy ra ngoài. Bộ 2: xuất phát tại i=1, cộng a1=2 rồi nhảy tới ô 3, cộng a3=4, tổng 6. Bộ 3: xuất phát tại i=2, cộng ngay 1000 rồi nhảy ra ngoài. Bộ 4: xuất phát tại i=1, đi qua toàn bộ mảng, mỗi ô cộng 1, tổng 5.
1
7
5 1 1 1 1 14 15
19 Xuất phát tại i=1: cộng a1=5 rồi nhảy tới ô 6, cộng a6=14, tổng 19. Đây là giá trị lớn nhất.

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