Cod sursa(job #1763983)

Utilizator radu9876Radu Sirghe radu9876 Data 24 septembrie 2016 21:01:47
Problema Trapez Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>

int cmmdc(int a,int b){
    if(b>a){
        int m=a;
        a=b;b=m;
    }
    if(b==0 || b==1) return 1;
    return cmmdc(b,a/b);
}

int main()
{
    int rez=0,n,i,j,x=0;
    FILE *in=fopen("trapez.in","r");
    fscanf(in,"%d",&n);
    int abs[n],ord[n],sus[n*(n-1)/2],jos[n*(n-1)/2];
    for(i=0;i<n;i++){
        fscanf(in,"%d%d",&abs[i],&ord[i]);
        for(j=0;j<i;j++){
            int a=abs[j]<abs[i]?abs[i]-abs[j]:abs[j]-abs[i];
            int b=ord[j]<ord[i]?ord[i]-ord[j]:ord[j]-ord[i];
            int k=cmmdc(a,b);
            sus[x]=b/k;
            jos[x]=a/k;
            x++;
        }
    }
    fclose(in);
    FILE *out=fopen("trapez.out","w");
    for(i=0;i<x;i++){
        for(j=0;j<i;j++){
            if(sus[i]==sus[j] && jos[i]==jos[j]) rez++;
        }
    }
    fprintf(out,"%d",rez);
    return 0;
}