Bội của độ dài

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên.

Bạn cần biến tất cả các phần tử của mảng thành 0 bằng cách thực hiện thao tác sau đúng ba lần:

  • Chọn một đoạn liên tiếp [l,r]. Với mỗi phần tử trong đoạn này, cộng thêm vào nó một bội của len, trong đó len=rl+1 là độ dài của đoạn. Các giá trị cộng thêm cho từng vị trí có thể khác nhau.

Có thể chứng minh rằng luôn tồn tại cách làm cho tất cả các phần tử bằng 0.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n: số phần tử của mảng.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra sáu dòng, mô tả ba thao tác. Với mỗi thao tác, in hai dòng:

  • Dòng đầu chứa hai số nguyên l,r (1lrn): hai đầu của đoạn được chọn.
  • Dòng thứ hai chứa rl+1 số nguyên bl,bl+1,,br (1018bi1018): các giá trị cộng thêm vào al,al+1,,ar. Mỗi bi phải chia hết cho rl+1.

Nếu có nhiều cách, in ra một cách bất kỳ.

Ràng buộc

  • 1n100000
  • 109ai109

Ví dụ

Input Output Giải thích
4
1 3 2 4
1 3
3 9 6
4 4
-4
1 4
-4 -12 -8 0
Thao tác 1 cộng vào [1,3] các bội của 3, biến mảng thành [4,12,8,4] (mỗi phần tử chia hết cho 4). Thao tác 2 cộng 4 vào a4, biến a4=0. Thao tác 3 cộng vào [1,4] các bội của 4 để triệt tiêu tất cả về 0.
1
-2
1 1
2
1 1
0
1 1
0
Với n=1, mọi số đều là bội của 1. Thao tác đầu cộng 2 để triệt tiêu a1=2; hai thao tác còn lại cộng 0.

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