Cod sursa(job #801822)

Utilizator S7012MYPetru Trimbitas S7012MY Data 24 octombrie 2012 23:20:16
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define inf (1<<30)
#define DN 1005
using namespace std;

int n,sz=-1;
double pnt[DN*DN],x[DN],y[DN];

int main()
{
    ifstream f("trapez.in");
    ofstream g("trapez.out");
    f>>n;
    for(int i=0; i<n; ++i) f>>x[i]>>y[i];
    for(int i=0; i<n; ++i) for(int j=i+1; j<n; ++j) if(i!=j) {
        if(y[j]-y[i]==0) pnt[++sz]=inf;
        else pnt[++sz]=(x[j]-x[i])/(y[j]-y[i]);
    }
    sort(pnt,pnt+sz+1);
    int eg=1,rez=1;
    for(int i=0; i<sz; ++i) {
        if(pnt[i]==pnt[i+1]) ++eg;
        else {
            rez+=(eg*(eg-1))/2;
            eg=1;
        }
    }
    g<<rez;
    return 0;
}