trang chủ / đề bài / permrest

Khôi phục hoán vị từ dãy hiệu

Đề bài

Mô tả

Một mảng số nguyên p1,p2,…,pn được gọi là một hoán vị nếu nó chứa mỗi số từ 1 đến n đúng một lần. Ví dụ, [3,1,2], [1], [1,2,3,4,5] và [4,3,1,2] là các hoán vị; còn [2], [1,1], [2,3,4] thì không.

Cho trước số nguyên n và mảng q1,q2,…,qn−1 trong đó qi=pi+1−pi, hãy khôi phục lại hoán vị p ban đầu, hoặc khẳng định không tồn tại hoán vị nào tương ứng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — độ dài hoán vị cần khôi phục.
  • Dòng thứ hai chứa n−1 số nguyên q1,q2,…,qn−1.

Dữ liệu ra

In ra −1 nếu không tồn tại hoán vị p độ dài n thỏa mãn dãy q đã cho. Ngược lại, in ra n số p1,p2,…,pn cách nhau bởi dấu cách. Nếu có nhiều hoán vị thỏa mãn, in ra hoán vị bất kỳ.

Ràng buộc

  • 2≤n≤2·105
  • −n<qi<n

Ví dụ

Input Output Giải thích
3
-2 1
3 1 2 Hoán vị [3,1,2] có hiệu q=[1−3,2−1]=[−2,1].
5
1 1 1 1
1 2 3 4 5 Hoán vị tăng dần, mỗi bước cộng thêm 1.
4
-1 2 2
-1 Mọi cách chọn p1 đều dẫn đến mảng có phần tử trùng nhau hoặc nằm ngoài [1,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.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