LABELS - Gán nhãn

View as PDF

Submit solution

Points: 100.00
Time limit: 3.0s
Memory limit: 1000M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Hôm nay là ngày đầu tiên Hưng giúp mẹ đóng gói các mặt hàng. Có tất cả ~N~ mặt hàng được gán nhãn ~A_1~, ~A_2~, ..., ~A_N~ là các số tự nhiên thuộc đoạn [1, ~N~]. Do lười ghi lại ~N~ nhãn hàng nên Hưng chỉ ghi lại ~N~ − 1 giá trị ~D_i~ = ~A_{i + 1}~ − ~A_i~ (1≤~i~<~N~).

Tuy nhiên sau đó, cậu nhận ra rằng không phải lúc nào dãy ~D~ cũng khôi phục lại được thành một dãy ~A~ duy nhất mà có thể có nhiều dãy ~A~. May mắn thay, Hưng cũng là một tay lập trình hạng khá nên cậu quen rất nhiều người có trình độ lập trình cao. Bạn là một trong những người bạn của Hưng, hãy giúp Hưng xác định xem với một dãy ~D~ mà Hưng ghi lại có khôi phục được duy nhất một dãy các nhãn ~A_1~, ~A_2~,..., ~A_N~ hay không? Nếu có thể, in ra dãy ~A~, ngược lại in ra −1.

Dữ liệu

  • Dòng đầu gồm một số nguyên dương ~N~ (~N~ ≤ 3.~10^5~).
  • Dòng thứ hai chứa ~N~ − 1 số nguyên ~D_1~, ~D_2~,..., ~D_{N − 1}~ (−~N~< ~D_i~ < ~N~).

Kết quả

  • Nếu tồn tại dãy ~A~ duy nhất, in ra ~N~ giá trị ~A_1~, ~A_2~,..., ~A_N~ theo thứ tự trên một dòng cách nhau bởi một dấu cách. Ngược lại in ra −1.

Ví dụ

Sample Input 1
5
1 3 -2 1
Sample Output 1
1 2 5 3 4
Sample Input 2
5
2 2 -3 1
Sample Output 2
1 3 5 2 3
Sample Input 3
2
0
Sample Output 3
-1

Nguồn: Free Contest


Comments

Please read the guidelines before commenting.



  • 4
    Lamle  commented on Sept. 1, 2021, 1:40 p.m.

    Đề bài là a(i+1)-ai nha,đề phòng hiểu nhầm:))