Pagini recente » Cod sursa (job #1575379) | Rating Horia Mercan (horia_mercan) | Cod sursa (job #360564) | Cod sursa (job #246866) | Cod sursa (job #1207591)
#include <iostream>
#include <fstream>
using namespace std;
long long m,a[1000],mx;
int caut (int s,int d,int x,int i,int j)
{
if(s>d)
return 0;
else
{
m =(s+d)/2;
if (x>=a[m]&&m!=i&&m!=j){
mx=m;
return caut(m+1,d,x,i,j);
}
if (x<a[m])
return caut(s,m-1,x,i,j);
else
return caut(m+1,d,x,i,j);
}
}
int main()
{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n;
f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
int mn,man,i,k,j;
for (i=1;i<=n;i++){
mn=a[i];
k=i;
for (j=i+1;j<=n;j++)
if (a[j]<mn){
mn=a[j];
k=j;
}
man=a[k];
a[k]=a[i];
a[i]=man;
}
k=0;
long long poz=0;
for(int i=1;i<n;i++)
for(int j=i+1;j<n;j++){
caut(1,n,a[i]+a[j],i,j);
//cout<<j<<" "<<mx<<"\n";
if(mx>j)
poz+=mx-j;
}
//cout<<poz;
g<<poz;
return 0;
}