#include<bits/stdc++.h>
#define f1(i, n) for(int i=1;i<=n;++i)
#define f0(i, n) for(int i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 1e6 + 1;
const int N = 2e5 + 1;
const ll MOD = 1e9 + 7;
ll A[N], pre[N];
string multiply(string num1, string num2) {
int len1 = num1.size();
int len2 = num2.size();
vector<int> result(len1 + len2, 0);
// Nhân từng chữ số
for (int i = len1 - 1; i >= 0; i--) {
for (int j = len2 - 1; j >= 0; j--) {
int mul = (num1[i] - '0') * (num2[j] - '0');
int pos1 = i + j;
int pos2 = i + j + 1;
int sum = mul + result[pos2];
result[pos2] = sum % 10;
result[pos1] += sum / 10;
}
}
// Chuyển vector kết quả thành chuỗi
string product = "";
for (int digit : result) {
if (!(product.empty() && digit == 0)) {
product += to_string(digit);
}
}
return product.empty() ? "0" : product;
}
int compareBigNumbers(string a, string b) {
// Bỏ số 0 ở đầu (nếu có)
a.erase(0, a.find_first_not_of('0'));
b.erase(0, b.find_first_not_of('0'));
// So độ dài trước
if (a.length() > b.length()) return 1;
if (a.length() < b.length()) return -1;
// Nếu độ dài bằng nhau thì so từng chữ số
for (size_t i = 0; i < a.length(); ++i) {
if (a[i] > b[i]) return 1;
if (a[i] < b[i]) return -1;
}
return 0; // Hai số bằng nhau
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
f1(i, n) {
cin >> A[i];
pre[i] = pre[i - 1] + A[i];
}
ll pos = 1;
string max_sum = "0";
for (ll i = 1; i < n; ++i) {
string motcaigiday = multiply(to_string(pre[i]), to_string((pre[n] - pre[i])));
int comp = compareBigNumbers(motcaigiday, max_sum);
if (comp == 1) {
max_sum = motcaigiday;
pos = i;
}
}
cout << pos;
}