Cod sursa(job #1429566)

Utilizator alex.vasiuVasiu Alexandru alex.vasiu Data 6 mai 2015 17:48:25
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include<cmath>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n;
struct punct
{
    int x,y;
} v[1001];
vector <double> sol;
const double INF=(1LL<<31)-1;
const double eps=1.e-14;
double CalculPanta (punct a, punct b)
{
    int p,q;
    p=a.x-b.x;
    q=a.y-b.y;
    if (!p)
        return INF + 1;
    return (double) q / p * 1.0;
}
int main()
{
    f>>n;
    for(int i=0; i<n; i++)
        f>>v[i].x>>v[i].y;
    f.close();
    int64_t ct=0;
    for(int i=0; i<n-1; i++)
        for(int j=i+1; j<n; j++)
            sol.push_back(CalculPanta(v[i],v[j]));
    int m=sol.size();
    sort(sol.begin(),sol.end());
    int last=sol[0];
    ct=0;
    int sum=0;
    for(int i=1; i<m; i++)
    {
        if(last==sol[i])
            ct++;
        else
        {
            if(ct>1)
                sum+=((ct*(ct-1))/2);
            ct=0;
            last=sol[i];
        }
    }
    g<<sum;

}