Cod sursa(job #1330133)

Utilizator ASTELOTudor Enescu ASTELO Data 30 ianuarie 2015 13:49:16
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct eu{int x,y;};
eu v[1001];
struct eu2{int x,y;
double z;};
eu2 vc[1000001];
int n,i,j,k,l,m,cate,s;
bool sorting(eu2 a,eu2 b)
    {
    if(a.z<b.z)
        return 1;
    return 0;
    }
int main ()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
    scanf("%d%d",&v[i].x,&v[i].y);
for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
        {
        cate++;
        vc[cate].x=v[j].x-v[i].x;
        vc[cate].y=v[j].y-v[i].y;
        int h;
        if(v[i].x==v[j].x)
            vc[cate].z=2000000001;
        else
            vc[cate].z=1.0*vc[cate].y/vc[cate].x;
        }
sort(vc+1,vc+cate+1,sorting);
int k=0,nr=0;
for(i=1;i<=cate;i++)
    {
    if(vc[i].z==vc[i-1].z)
        nr++;
    else
        {
        s+=nr*(nr-1)/2;
        nr=1;
        }
    }
s+=nr*(nr-1)/2;
printf("%d",s);
return 0;
}