Cod sursa(job #1033126)

Utilizator alex-florinHarbuzariu Alexandru Florin alex-florin Data 16 noiembrie 2013 14:52:27
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#define q 2500000000
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
float p[1000000];
void quicksort(int stanga, int dreapta)
{
    int i, j, mijloc, aux;
    i=stanga; j=dreapta;
    mijloc=p[(stanga+dreapta)/2];
    while(i<=j)
    {
        while(p[i]<mijloc)
        i++;
        while(p[j]>mijloc)
        j--;
        if(i<=j)
        {
            aux=p[i]; p[i]=p[j];
            p[j]=aux; i++; j--;
        }
    }
    if(stanga<j)
        quicksort(stanga, j);
    if(i<dreapta)
        quicksort(i, dreapta);
}
float panta(float x1,float y1,float x2,float y2)
{
    if(x2==x1)
        return q;
    return (y2-y1)/(x2-x1);
}
int main()
{
    int n, i, j, k=0, nr=0, x[1005], y[1005];
    f>>n;
    for(i=1; i<=n; i++)
        f>>x[i]>>y[i];
    for(i=1; i<n; i++)
        for(j=i+1; j<=n; j++)
        p[++k]=panta(x[i],y[i],x[j],y[j]);
    quicksort(1,k);
    for(i=1; i<k; i++)
        if(p[i]==p[i+1])
            nr++;
    g<<nr;
    f.close(); g.close();
    return 0;
}