Pagini recente » Cod sursa (job #2263211) | Cod sursa (job #2464072) | Cod sursa (job #938473) | Cod sursa (job #2061900) | Cod sursa (job #927778)
Cod sursa(job #927778)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define Nmax 2002
char FileIn [] = { "nrtri.in" };
char FileOut [] = { "nrtri.in" };
int N, R;
int V[Nmax];
void citire(){
ifstream f(FileIn);
f >> N;
for ( int i = 1; i <= N; ++i )
f >> V[i];
f.close();
}
void rezolva(){
int log2;
for ( log2 = 1; log2 <= N; log2 <<= 1 );
for ( int i = 1; i <= N; ++i )
for ( int j = i + 1; j < N; ++j ){
int ab = V[i] + V[j];
int poz = j + 1;
if ( V[poz] > ab )
continue;
for ( int t = log2; t; t >>= 1 )
if ( poz + t <= N && V[poz + t] <= ab )
poz += t;
R += ( poz - j );
}
}
void afis(){
ofstream g(FileOut);
g << R << "\n";
g.close();
}
int main(){
citire();
sort ( V + 1, V + N + 1 );
rezolva();
afis();
return 0;
}