Pagini recente » infoarena - te ajutam sa devii olimpic! | Cod sursa (job #1020904) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #1362760) | Cod sursa (job #568853)
Cod sursa(job #568853)
#include <stdio.h>
#include <algorithm>
using namespace std;
int v[801], n;
int caut(int val)
{
int i, step;
for (step = 1; step <n; step <<= 1);
for (i = 0; step; step >>= 1){
if (i + step <= n && v[i + step] <= val){
}
}
return i;
}
int main ()
{
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
int i, j, c=0, x;
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf ("%d", &v[i]);
sort(v+1, v+n+1);
for (i=1; i<=n-2; i++) {
for (j=i+1; j<=n-1; j++) {
x=(caut(v[i]+v[j])-j);
c+=x;
}
}
printf("%d", c);
return 0;
}