Cod sursa(job #1712190)
Utilizator | Data | 2 iunie 2016 11:11:49 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,v[805],nr;
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&v[i]);
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int s=v[i]+v[j];
int x=upper_bound(v+1,v+n+1,s-1)-v;
while (v[x]==s && x<=n) x++;
if (x<=n) nr=nr+(n-x+1);
}
}
printf("%d\n",nr);
return 0;
}