Pagini recente » Cod sursa (job #1794068) | Cod sursa (job #584723) | Cod sursa (job #3032695) | Istoria paginii runda/pgleague/clasament | Cod sursa (job #472883)
Cod sursa(job #472883)
# include <algorithm>
using namespace std;
const char FIN[] = "nrtri.in", FOU[] = "nrtri.out" ;
int V[805] ;
int N, sol, aux ;
inline int cb ( int val ) {
int rez = 0, cnt, i ;
for ( cnt = aux, i = 0; cnt; cnt >>= 1 ) {
if ( i + cnt <= N && V[i + cnt] <= val ) {
i += cnt;
}
}
return i ;
}
int main() {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d", &N ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d", &V[i] ) ;
}
sort ( V + 1, V + N + 1 ) ;
for ( aux = 1; aux <= N; aux <<= 1 ) ;
for ( int i = 1; i < N; ++i ) {
for ( int j = i + 1; j <= N; ++j ) {
sol += cb ( V[i] + V[j] ) - j ;
}
}
printf ( "%d", sol ) ;
return 0;
}