Pagini recente » Cod sursa (job #182570) | Cod sursa (job #2913372) | Cod sursa (job #1991057) | Cod sursa (job #2764705) | Cod sursa (job #281853)
Cod sursa(job #281853)
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
ifstream in("nrtri.in");
ofstream out("nrtri.out");
long x[1000],i,j,n,s,k;
int sort_function( const void *a, const void *b)
{
return( strcmp((char *)a,(char *)b) );
}
int bin(int a, int b, int st, int dr)
{
int mij=(st+dr)/2;
if(x[mij]<=a+b && x[mij]>=a-b)
return mij;
if(st==dr)
return 0;
else
{
int k1=bin(a,b, st, mij);
int k2=bin(a,b, mij+1, dr);
return k1+k2;
}
}
/*void sort(int k)
{
int t;
while(x[k]<x[k-1]&&n>1)
{
t=x[k];
x[k]=x[k-1];
x[k-1]=t;
k--;
}
} */
int main()
{
in>>n;
for(i=0; i<n; i++)
{in>>x[i];}
qsort((void *)x, n, sizeof(x[0]), sort_function);
for(i=0; i<n; i++)
for(j=i+1; j<n-1; j++)
{
k=bin(x[i],x[j],j+1,n-1);
if(k)
s+=(k-j);
}
out<<s;
return 0;
}