trang chủ / đề bài / thhv25_dx02_10_a

Hợp nhất

Đề bài

Mô tả

Cho một dãy số nguyên dương gồm N phần tử. Tại mỗi bước, tạo ra một dãy mới bằng cách cộng từng cặp phần tử liên tiếp trong dãy hiện tại:

  • Phần tử thứ nhất của dãy mới là tổng của phần tử thứ nhất và thứ hai của dãy cũ,
  • Phần tử thứ hai là tổng của phần tử thứ hai và thứ ba của dãy cũ,
  • …,
  • Phần tử cuối cùng là tổng của hai phần tử cuối cùng của dãy cũ.

Như vậy mỗi bước dãy ngắn đi một phần tử. Lặp lại quá trình này cho đến khi chỉ còn một số duy nhất (nếu N=1 thì không cần thực hiện bước nào).

Hãy tính giá trị của số cuối cùng này, lấy theo modulo (109+7).

Dữ liệu vào

  • Dòng 1: số nguyên N (1≤N≤5·105), số phần tử ban đầu của dãy.
  • Dòng 2: N số nguyên a1,a2,…,aN (1≤ai≤105), các phần tử của dãy ban đầu.

Dữ liệu ra

  • Dòng 1: số nguyên kết quả, lấy modulo (109+7).

Ràng buộc

  • 1≤N≤5·105.
  • 1≤ai≤105.

Subtasks

  • Subtask 1 (30% số điểm): 1≤N≤1000.
  • Subtask 2 (15% số điểm): Mọi phần tử ai đều bằng nhau.
  • Subtask 3 (40% số điểm): N≤100000.
  • Subtask 4 (15% số điểm): Không có ràng buộc bổ sung.

Ví dụ

Input Output Giải thích
5
3 5 4 6 2
73 [3,5,4,6,2]→[8,9,10,8]→[17,19,18]→[36,37]→[73].
1
7
7 Dãy chỉ có một số nên kết quả chính là số đó (ví dụ bổ sung, không có trong đề gốc).

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0