Pagini recente » Cod sursa (job #1947641) | Cod sursa (job #969502) | Istoria paginii runda/quarantine_training_2 | Cod sursa (job #2285118) | Cod sursa (job #2078194)
#include <fstream>
#include <bits/stdc++.h>
#define nmax 802
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[nmax],n;
int caut_bin( int st, int dr, int x)
{
if(st<=dr)
{
int mij=st+(dr-st)/2;
if(v[mij]>x)
return caut_bin(st, mij-1,x);
if(v[mij]<=x)
{
if(mij==n) return mij;
if(v[mij+1]<=x)
return caut_bin(mij+1,dr,x);
return mij;
}
}
}
int main()
{
int nrtri=0;
f>>n;
for(int i=1; i<=n; ++i)
f>>v[i];
sort(v,v+n+1);
for(int i=1;i<n-1;++i)
for(int j=i+1;j<n;++j)
{
int k=caut_bin(j,n,v[i]+v[j]);
nrtri+=(k-j);
}
g<<nrtri;
return 0;
}