Pagini recente » Cod sursa (job #3267861) | Cod sursa (job #3253155) | Cod sursa (job #1967164) | Cod sursa (job #1043623) | Cod sursa (job #3240822)
#include <bits/stdc++.h>
using namespace std;
int n, m;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
fin >> n;
vector<int> arr(n), pref(n + 1, 0);
for (int i = 0; i < n; ++i) {
fin >> arr[i];
}
int answer = 0;
sort(arr.begin(), arr.end());
for (int i = 0; i < n; ++i) {
pref[i + 1] = pref[i] + arr[i];
}
for (int i = 1; i <= n; ++i) {
int left = i, right = n, target = 2 * pref[i];
while (left <= right) {
int mid = left + (right - left) / 2;
if (pref[mid] <= target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
answer += right - i;
}
fout << answer;
return 0;
}