Cod sursa(job #2066190)
Utilizator | Data | 14 noiembrie 2017 19:20:04 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int const L=9;
int cautbin(int v[800],int n,int x)
{
int r=0,pas=1<<L;
while(pas!=0)
{
if(r+pas<n && v[r+pas]<=x)
r=r+pas;
pas=pas/2;
}
return r;
}
int main()
{
int n,v[800],i,j,rez=0,k;
ifstream f("ntri.in");
f>>n;
for(i=0; i<n; i++)
f>>v[i];
sort(v,v+n);
for(i=0; i<n; i++)
for(j=i+1; j<n; j++)
{
k=cautbin(v,n,v[i]+v[j]);
if(k>j)
rez=rez+k-j;
}
cout<<rez;
return 0;
}