Cod sursa(job #2320633)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 14 ianuarie 2019 22:49:49
Problema Trapez Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,i,j,ans,cnt,a[1010],b[1010];

vector<long double> v;

long double dist(int i,int j)
{
    return sqrt((a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]));
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i]>>b[i];
    for(i=1;i<=n;i++)
        for(j=i+1;j<=n;j++)
            if(b[j]<b[i])
            {
                long double x=(long double)(a[i]-a[j])/dist(i,j);
                v.push_back(x);
            }
            else
            {
                long double x=(long double)(a[j]-a[i])/dist(i,j);
                v.push_back(x);
            }
    sort(v.begin(),v.end());
    cnt=1;
    for(i=1;i<v.size();i++)
        if(v[i]-v[i-1]<1e-13)
            ans+=cnt,cnt++;
        else
            cnt=1;
    g<<ans;

//    g<<'\n';
//    for(auto it:v)
//        g<<it<<' ';
    return 0;
}