Pagini recente » Cod sursa (job #138273) | Cod sursa (job #16276) | Cod sursa (job #2627028) | Cod sursa (job #514150) | Cod sursa (job #307196)
Cod sursa(job #307196)
#include <stdio.h>
#include <algorithm>
using namespace std;
int v[801];
int n,i,j,w,poz;
int caut(int i, int j) {
int p,u,m,suma;
p = j+1;
u = n;
poz = 0;
suma = v[i] + v[j];
while (p <= u) {
m = p + (u-p)/2;
if (v[m] <= suma) {
p = m+1;
poz = m;
}
else
u = m-1;
}
return poz;
}
int main() {
FILE *f = fopen("nrtri.in","r");
FILE *g = fopen("nrtri.out","w");
fscanf(f,"%d",&n);
for (i=1; i<=n; i++)
fscanf(f,"%d",&v[i]);
sort(v+1,v+1+n);
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++) {
caut(i,j);
if (poz)
w += poz-j;
}
fprintf(g,"%d\n",w);
fclose(f);
fclose(g);
return 0;
}