Pagini recente » Cod sursa (job #1878910) | Cod sursa (job #2902000) | Cod sursa (job #999587) | Cod sursa (job #523723) | Cod sursa (job #927807)
Cod sursa(job #927807)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define Nmax 30000
char FileIn [] = { "nrtri.in" };
char FileOut [] = { "nrtri.out" };
long long N, R;
int V[Nmax], hash[Nmax * 2];
void citire(){
ifstream f(FileIn);
f >> N;
for ( int i = 1; i <= N; ++i )
f >> V[i];
f.close();
}
void rezolva(){
int j = 0;
for ( int i = 1; i <= V[N - 1] + V[N]; ++i ){
while ( j <= N && V[j] <= i)
++j;
j--;
hash[i] = j;
}
for ( int i = 1; i < N; ++i )
for ( int j = i + 1; j <= N; ++j )
if ( hash[ V[i] + V[j] ] > j )
R += hash[ V[i] + V[j] ] - j;
}
void afis(){
ofstream g(FileOut);
g << R << "\n";
g.close();
}
int main(){
citire();
sort ( V + 1, V + N + 1 );
rezolva();
afis();
return 0;
}