Pagini recente » Cod sursa (job #863540) | Cod sursa (job #722484) | Cod sursa (job #2693256) | Cod sursa (job #2642746) | Cod sursa (job #2843799)
#include <stdio.h>
#include <stdlib.h>
#define ELMAX 1000000
#define NMAX 1000
#define NOVAL -1
#define ETA 0.0001
double a[ELMAX], b[ELMAX];
int v[NMAX][2];
void calcFormula (int id, int x1, int y1, int x2, int y2){
if(x1 == x2){
a[id] = NOVAL;
b[id] = x1;
} else{
a[id] = (double)(y1 - y2) / (x1 - x2);
b[id] = y1 - a[id] * x1;
}
}
int main(){
int n,i,j,id,nr;
FILE *fin, *fout;
fin = fopen("trapez.in","r");
fscanf(fin, "%d",&n);
for(i = 0; i < n; i++){
fscanf(fin, "%d%d",&v[i][0],&v[i][1]);
}
fclose(fin);
id = 0;
for(i = 0; i < n-1; i ++){
for(j = i+1; j < n; j ++){
calcFormula(id, v[i][0], v[i][1], v[j][0], v[j][1]);
//printf("%d %d , %d %d : %.1f %.1f\n",v[i][0],v[i][1],v[j][0],v[j][1],a[id],b[id]);
id ++;
}
}
nr = 0;
for(i = 0; i < id-1; i ++){
for(j = i + 1; j < id; j ++){
if(a[i] - a[j] > -ETA && a[i] - a[j] < ETA && b[i] != b[j]) ///Dupa ce am stat juma de ora sa imi dau seama cum sa fac sa numar paralelogramele o singura data...
nr++;
}
}
fout = fopen("trapez.out","w");
fprintf(fout, "%d\n",nr);
fclose(fout);
return 0;
}