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

Karen và Bài kiểm tra

Đề bài

Mô tả

Cho một dãy gồm n số nguyên được viết trên một hàng. Ta thực hiện quá trình sau để rút gọn dãy về một số duy nhất:

  • Từ hàng hiện tại, lần lượt cộng rồi trừ xen kẽ mỗi cặp số kề nhau, ghi các kết quả xuống hàng tiếp theo. Phép toán đầu tiên của toàn bộ quá trình là phép cộng.
  • Nếu một hàng có k số thì hàng tiếp theo có k1 số.
  • Quy tắc nối tiếp giữa các hàng: nếu phép toán cuối cùng của hàng trước là phép cộng thì hàng tiếp theo bắt đầu bằng phép trừ, và ngược lại. Nghĩa là dấu cộng/trừ luân phiên liên tục xuyên suốt tất cả các hàng, không bị đặt lại ở đầu mỗi hàng.

Lặp lại cho đến khi chỉ còn đúng một số. Hãy tìm số cuối cùng đó.

Vì kết quả có thể rất lớn, in ra phần dư không âm khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng phần tử ở hàng đầu tiên.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

  • Một số nguyên duy nhất: số cuối cùng còn lại, lấy phần dư không âm khi chia cho 109+7.

Ràng buộc

  • 1n2·105
  • 1ai109

Ví dụ

Input Output Giải thích
4
3 7 5 2
1000000006 Hàng 1 (bắt đầu +): 3+7=10, 75=2, 5+2=7[10,2,7], kết thúc bằng +. Hàng 2 (bắt đầu -): 102=8, 2+7=9[8,9], kết thúc bằng +. Hàng 3 (bắt đầu -): 89=1. Kết quả 1109+6(mod109+7).
5
3 6 9 12 15
36 Hàng 1: [9,3,21,3]. Hàng 2: [6,24,18]. Hàng 3: [30,6]. Hàng 4: 30(6)=36.

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