Cod sursa(job #1330171)

Utilizator ZenusTudor Costin Razvan Zenus Data 30 ianuarie 2015 14:36:01
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <climits>

using namespace std;

#define NMAX 1007
#define F first
#define S second
#define SQR(x) ((x)*(x))
#define eps (0.00001)

long long to;
pair < int , int > po[NMAX];
int i,j,N,cu;
double ip;
double tg[NMAX*NMAX];

int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);

scanf("%d",&N);

for (i=1;i<=N;++i)
scanf("%d%d",&po[i].F,&po[i].S);

for (i=1;i<=N;++i)
for (j=i+1;j<=N;++j)
tg[(int)++tg[0]]=(po[i].F==po[j].F) ? INT_MAX : (double)(po[i].S-po[j].S)/(po[i].F-po[j].F);

sort(tg+1,tg+(int)tg[0]+1);

for (i=cu=1;i<=(int)tg[0];++i)
{
    if (tg[i]==tg[i-1]) ++cu;
    else
    {
        to+=(long long)cu*(cu-1)/2;
        cu=1;
    }
}

printf("%lld\n",to);

return 0;
}