Cod sursa(job #1885700)
| Utilizator | Data | 20 februarie 2017 11:14:40 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi("nrtri.in");
ofstream fo("nrtri.out");
int nr[60001], v[800];
int main()
{
int i, n, rez, j;
fi>>n;
for(i=0;i<n;i++){
fi>>v[i];
nr[v[i]]++;
}
for(i=1;i<=60000;i++)
nr[i]+=nr[i-1];
sort(v,v+n);
rez=0;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++){
rez=rez+(nr[v[i]+v[j]]-nr[v[j]-v[i]-1])-1;
if(2*v[i]>=v[j])
rez--;
}
fo<<rez/3;
return 0;
}
