Cod sursa(job #2497200)
| Utilizator | Data | 22 noiembrie 2019 11:01:54 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.87 kb |
#include <stdio.h>
#include <stdlib.h>
FILE *fin , *fout;
int v[2000],f[30001];
int main() {
fin=fopen("nrtri.in","r");
fout=fopen("nrtri.out","w");
int n,i,x,poz,c=0,j,k,flag;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++) {
fscanf(fin,"%d",&x);
f[x]++;
}
poz=0;
for(i=1;i<30001;i++) {
while(f[i]>0) {
v[poz]=i;
poz++;
f[i]--;
}
}
for(i=0;i<n-2;i++) {
for(j=i+1;j<n-1;j++) {
k=j+1;
flag=0;
while(k<n && flag==0) {
if(v[i]+v[j]>=v[k]) {
c++;
}
else {
flag=1;
}
k++;
}
}
}
fprintf(fout,"%d\n",c);
fclose(fin);
fclose(fout);
return 0;
}
