Cod sursa(job #2201003)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 3 mai 2018 09:38:42
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

int N,x[1003],y[1003],Dr,lg;
double trapez[1000003];
long long int ans;

int main()
{
    ifstream fin("trapez.in");
    ofstream fout("trapez.out");
    fin>>N;
    for(int i=1; i<=N; i++)
    {
        fin>>x[i]>>y[i];
    }
    for(int i=1; i<=N; i++)
    {
        for(int j=i+1; j<=N; j++)
        {
            if(y[i]==y[j])
                {
                    Dr++;
                }
            else
            {
                lg++;
                trapez[lg]=(double)((double)(x[i]-x[j])/(double)(y[i]-y[j]));
            }
        }
    }
    sort(trapez+1,trapez+1+lg);
    for(int i=1; i<=lg; i++)
    {
        int Cont=0;
        while(trapez[i]==trapez[i+1])
        {
            i++;
            Cont++;
        }
        ans=ans+(Cont*(Cont+1)/2);
    }
    ans=ans+(Dr-1)*Dr/2;
    fout<<ans;
}