Pagini recente » Cod sursa (job #400718) | Cod sursa (job #2430348) | Cod sursa (job #2680705) | Cod sursa (job #3159668) | Cod sursa (job #613486)
Cod sursa(job #613486)
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace std;
int k;
void sort(long long int v[] , int i , int j , int n )
{
int aux;
if( v[i] > v[j])
{
aux = v[i];
v[i] = v[j];
v[j] = aux ;
}
if( i < n - 1 )
{
if( j < n )
sort(v , i , j+1 , n);
else
sort(v , i + 1 , i + 2 , n);
}
}
int caut(long long int v[],int val ,int st,int dr)
{
int mijl;
if (dr < st)
k = mijl;
mijl = st + (dr - st) / 2 ;
if (v[mijl-1] > val)
return caut(v , val, st, mijl-1);
else if (v[mijl] < val)
return caut( v , val, mijl+1, dr);
else
return mijl ;
}
int main()
{
long long int v[800];
int n , i , j , k , tr = 0 ,var;
fstream f("nrtri.in",ios::in);
f>>n;
for( i = 0 ; i < n ; i++ )
f>>v[i];
sort(v , 0 , 1 , n);
for( i = 0 ; i < n ; i++ )
for( j = i+ 1 ; j < n ; j++ )
{
k = caut( v , v[i]+v[j] , 1 , n);
while( k < n )
{
tr++;
k++;
}
}
fstream g("nrtri.out",ios::out);
g<<tr;
return 0 ;
}