Chia dãy
Point: 100.0
Time limit: 1.0s
Memory limit: 127 M
Input:
stdin
Output:
stdout
Author:
Problem type
Phương pháp: Tìm kiếm nhị phân cơ bản
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text
Yêu cầu
Cho dãy A gồm N phần tử . 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?
Dữ liệu
-
Dòng đầu ghi số \(N\) ( \(N ≤ 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 \leq 10^9\) ).
Kết quả
-
Kết quả gồm hai chỉ số i,j thỏa mãn 0 ≤ i < j ≤ N sao cho i,j chia dãy thành 3 mảng con có tổng bằng nhau. Nếu không tồn tại cách chia, in ra -1.
-
đoạn 1: từ vị trí 1 đến vị trí i
-
đoạn 2: từ vị trí i+1 đến vị trí j
-
đoạn 3: từ vị trí j+1 đến vị trí n
-
nếu có nhiều đáp án, in ra i j nhỏ nhất
Ví dụ
INPUT
5
1 3 4 0 4
OUTPUT
2 3