Cod sursa(job #1140305)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 11 martie 2014 21:41:52
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
#define x first
#define y second

using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");

int n,i,k,ord,j,dx,dy,l;

long long sol;

pair<int,int> v[1005];

long double panta[1000005];

int main() {
    f>>n;
    for(i=1;i<=n;i++) {
        f>>v[i].x>>v[i].y;
    }
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++) {
            dx=v[i].x-v[j].x;
            dy=v[i].y-v[j].y;
            if(dx)
                panta[++k]=(long double) dy*1.0/dx;
            else
                l++;
        }
    sol=l*(l-1)/2;
    sort(panta+1,panta+k+1);
    ord=0;
    for(i=1;i<=k;i++) {
        if(panta[i]==panta[i-1])
            ord++;
        else {
            sol+=ord*(ord-1)/2;
            ord=1;
        }
    }
    g<<sol<<"\n";
    return 0;
}