Tổng lớn nhất trên vị trí chẵn

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên. Các chỉ số của mảng được đánh số từ 0 (phần tử đầu tiên là a0, phần tử thứ hai là a1, ...).

Bạn được phép đảo ngược nhiều nhất một đoạn con liên tiếp của mảng. Đoạn con a[l;r] là dãy al,al+1,,ar; đảo ngược nó biến dãy này thành ar,ar1,,al.

Hãy chọn đoạn con để đảo ngược (hoặc không đảo ngược gì cả) sao cho tổng các phần tử ở những vị trí chẵn của mảng kết quả là lớn nhất, tức là tổng a0+a2+a4+ đạt giá trị lớn nhất có thể.

t bộ dữ liệu độc lập cần trả lời.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu. Sau đó là t bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n là độ dài mảng.
    • Dòng thứ hai chứa n số nguyên a0,a1,,an1.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng riêng tổng lớn nhất của các phần tử ở vị trí chẵn sau khi đảo ngược nhiều nhất một đoạn con.

Ràng buộc

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

Ví dụ

Input Output Giải thích
4
8
1 7 3 4 7 6 2 9
5
1 2 1 2 1
10
7 8 4 5 7 6 8 9 7 3
4
3 1 2 1
26
5
37
5
Bộ 1: đảo ngược cả mảng được 9 2 6 7 4 3 7 1, tổng vị trí chẵn 9+6+4+7=26. Bộ 2: không đảo gì, tổng 1+1+1=5 đã là tối ưu.
3
5
17 6 4 4 4
7
19 5 13 11 12 13 5
1
213567876
27
57
213567876
Bộ 3: mảng chỉ có một phần tử ở vị trí 0, tổng luôn bằng chính nó.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0