Cod sursa(job #864099)
Utilizator | Data | 24 ianuarie 2013 17:51:32 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <stdio.h>
#include <stdlib.h>
int v[805];
int cmp(const void *p,const void *q)
{
int *pp=(int*)p, *qq=(int*)q;
return (*pp)-(*qq);
}
int main()
{
FILE *in,*out;
in=fopen("nrtri.in","r");
out=fopen("nrtri.out","w");
int a=1,b=2,i,n,cont=3,nrtr=0;
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)
fscanf(in,"%d",&v[i]);
qsort(&v[1],n,sizeof(v[0]),cmp);
while(cont<n)
{
if(v[a]+v[b]>=v[cont])
{
nrtr++;
cont++;
}
else
{
a++;
b++;
cont=b+1;
}
}
fprintf(out,"%d",nrtr);
return 0;
}