Cod sursa(job #1764765)

Utilizator radu9876Radu Sirghe radu9876 Data 25 septembrie 2016 21:11:36
Problema Trapez Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *in, *out;
    in=fopen("trapez.in", "r");
    out=fopen("trapez.out", "w");
    int n;
    fscanf(in, "%d", &n);
    int i,j, k=0, t=0, x[n], y[n];
    double p[n*n];// a[n*n], b[n*n];
    for(i=0;i<n;i++) fscanf(in, "%d %d", &x[i], &y[i]);
    for(i=0;i<n;i++)
        for(j=0;j<i;j++){
            //a[n*i+j]=x[i]-x[j];
            //b[n*i+j]=y[i]-y[j];
            p[k]=(y[i]==y[j])?1e10*((x[i]>x[j])?1:-1)
                :((double)x[i]-x[j])/(y[i]-y[j]);
            k++;
        }
    bula(k, p);
    for(i=0;i<k-1;i++)
        if(p[i]==p[i+1]) t++;
    fprintf(out, "%d", t);
    return 0;
}

void bula(int n, double p[]){
    int ok=1, i;
    while(ok){
        ok=0;
        for(i=0;i<n-1;i++) if(p[i]>p[i+1]){
            double m=p[i];
            p[i]=p[i+1];
            p[i+1]=m;
            ok=1;
        }
    }
}