Pagini recente » Cod sursa (job #2685399) | Cod sursa (job #2892648) | Cod sursa (job #1275447) | Cod sursa (job #2132568) | Cod sursa (job #481650)
Cod sursa(job #481650)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int N,V[801];
inline int BS(int v)
{
int st=0,dr=N-1,m;
while(st<=dr)
{
m=(st+dr)/2;
if((V[m]<=v&&V[m+1]>v)||(V[m]<=v&&m==N-1))
return m;
else if(V[m]<=v)
st = m+1;
else
dr = m-1;
}
return 0;
}
int main()
{
int nrtri=0,i,j;
in>>N;
for(i=0;i<N;i++)
in>>V[i];
sort(V,V+N);
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
nrtri += (BS(V[i]+V[j])-j);
out<<nrtri;
return 0;
}