Cod sursa(job #3218168)
Utilizator | Ariana Bercea ariana6730hh | Data | 26 martie 2024 12:28:10 |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int v[100001],n,x,nr;
int main()
{
in>>n;
for(int i=1; i<=n; i++)
in>>v[i];
sort(v+1, v+n+1);
for(int i=1; i<=n-1; i++)
for(int j=i+1; j<=n; j++)
{
x=v[i]+v[j];
int st=j+1, dr=n, mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(x<v[mij])
{
nr++;
dr=mij-1;
}
else st=mij+1;
}
}
out<<nr;
}