Cod sursa(job #2046381)
| Utilizator | Data | 23 octombrie 2017 19:08:52 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n, i, j, a[805], sol;
int main() {
f >> n;
for (i = 1; i <= n; i++)
f >> a[i];
sort(a+1,a+n+1);
for (i = 2; i < n; i++)
for (j = i+1; j <= n; j++) {
int st = 1, dr = j, mij;
while (st <= dr) {
mij = (st+dr)/2;
if (a[j]-a[i] > a[mij])
st = mij+1;
else dr = mij-1;
}
sol += j-st-1;
}
g << sol;
return 0;
}
