[MẢNG CỘNG DỒN & MẢNG HIỆU] SPLITARR

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho dãy ~a~ gồm ~n~ phần tử được đánh số từ ~1~ đến ~n~. Tìm cách tách ~a~ thành ba phần sao cho tổng các phần tử trong ba phần là bằng nhau.

Yêu cầu: Tìm hai chỉ số ~i, j~ thỏa mãn ~1 \le i \le j < n~ sao cho ~i, j~ chia dãy thành ba mảng con ~[1, 2, ..., i]~, ~[i+1, i+2, ..., j]~, ~[j+1, j+2, ..., n]~ có tổng bằng nhau.

Input

Dòng đầu ghi số ~n~ (~n \le 10^6~)

Dòng tiếp theo ghi ~n~ số nguyên, các số cách nhau bởi dấu cách (~a_i \le 10^9~)

Output

Kết quả gồm hai chỉ số ~i, j~ thỏa mãn ~1 \le i \le j < n~ sao cho ~i, j~ chia dãy thành ba mảng con có tổng bằng nhau.

Nếu không tồn tại cách chia, in ra ~-1~.

Sample Input 1
3
2 3 4
Sample Output 1
-1
Sample Input 2
3
40 40 40
Sample Output 2
1 2

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.