Cod sursa(job #1347689)

Utilizator ipus1Stefan Enescu ipus1 Data 19 februarie 2015 09:17:48
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct aa{long long x,y;};
aa vv[1001];
double v[1000001];
bool sortare(double a, double b)
    {return a<b;
    }
int main ()
{freopen ("trapez.in","r",stdin);
freopen ("trapez.out","w",stdout);
int n,i,j,a=0,b=0,k=0,x,q;
long long s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
    scanf("%lld%lld",&vv[i].x,&vv[i].y);
for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
        {if(vv[i].x==vv[j].x)
            a++;
        else
            if(vv[i].y==vv[j].y)
                b++;
            else
                {k++;
                v[k]=1.0*(vv[i].x-vv[j].x)/(vv[i].y-vv[j].y);
                }
        }
s=a*(a-1)/2+b*(b-1)/2;
sort(v+1,v+k+1,sortare);
for(i=2;i<=k;i++)
    {q=1;
    while(v[i]==v[i-1])
        {q++;
        i++;
        }
    s+=q*(q-1)/2;
    }
printf("%lld",s);
return 0;
}