Cod sursa(job #2413186)

Utilizator StefantimStefan Timisescu Stefantim Data 22 aprilie 2019 23:54:26
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <algorithm>
using namespace std;
struct PUNCT
{
    double a , b ;
}x[1005];
double v[506000], INF = 2e9;
int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    int n , i , cnt, t = 0 , j;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%lf%lf",&x[i].a,&x[i].b);
    }
    cnt = 0 ;
    for(i=1;i<n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            if(x[i].a-x[j].a==0)
                v[++cnt]=INF ;
            else
                v[++cnt]=(x[i].b-x[j].b)/(x[i].a-x[j].a);
        }
    }
    int r = cnt;
    sort(v+1,v+r+1);
    cnt = 1 ;
    for(i=2;i<=r;i++)
    {
        if(v[i]==v[i-1])
            cnt++;
        else
        {
            t += (cnt*(cnt-1))/2;
            cnt = 1 ;
        }
    }
    t+=(cnt*(cnt-1))/2;
    printf("%d",t);
    return 0;
}