Pagini recente » Monitorul de evaluare | Profil stanciumariusvaleriu324CB | Cod sursa (job #3324443) | Statistici Duta Andrei-George (andreigeorgeduta) | Cod sursa (job #3324462)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main() {
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int n;
int v[801];
in >> n;
for (int i = 0; i < n; i++) {
in >> v[i];
}
sort(v, v + n);
long long total = 0;
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
int suma = v[i] + v[j];
int st = j + 1, dr = n - 1;
int pos = j;
while (st <= dr) {
int mid = (st + dr) / 2;
if (v[mid] < suma) {
pos = mid;
st = mid + 1;
} else {
dr = mid - 1;
}
}
total += (pos - j);
}
}
out << total << endl;
return 0;
}