Cod sursa(job #2614485)

Utilizator As932Stanciu Andreea As932 Data 11 mai 2020 20:13:29
Problema Trapez Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

ifstream cin("trapez.in");
ofstream cout("trapez.out");

int n;
struct tr
{
    long long x,y,p;
}v[1005];

vector <int> nr;

void read()
{
    cin>>n;

    for(int i=1;i<=n;i++)
    {
        cin>>v[i].x>>v[i].y;

        if(!v[i].x || !v[i].y)
        {
            v[i].p=0;
            continue;
        }

        v[i].p=v[i].y/v[i].x;
    }
}

bool cmp(tr a,tr b)
{
    return a.p<b.p;
}

void solve()
{
    sort(v+1,v+n+1,cmp);

    int len=1;

    for(int i=1;i<n;i++)
        if(v[i].p==v[i+1].p)
            len++;
        else
        {
            if(len>1)
                nr.push_back(len);
            len=1;
        }

    int ans=0;

    for(int i=0;i<nr.size();i++)
    {
        ans+=(nr[i]/2)*(nr[i]/2-1)/2;

        for(int j=i+1;j<nr.size();j++)
            ans+=(nr[i]*(nr[i]-1)/2)*(nr[j]*(nr[j]-1)/2);
    }

    cout<<ans;
}

int main()
{
    read();
    solve();

    return 0;
}