Mai intai trebuie sa te autentifici.
Cod sursa(job #2068056)
Utilizator | Data | 17 noiembrie 2017 09:46:50 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("nrtri.in");
ofstream out ("nrtri.out");
const int N=802;
int v[N],n;
int cautbin(int a,int b)
{
int s=a+b,pas=1<<9,r=0;
while (pas)
{
if (r+pas<=n && v[r+pas]<=s)
r+=pas;
pas/=2;
}
return r;
}
int main()
{
int i,j,cnt=0;
in>>n;
for (i=1;i<=n;i++)
in>>v[i];
sort(v+1,v+n+1);
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
cnt+=cautbin(v[i],v[j])-j;
out<<cnt;
return 0;
}