[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