Cod sursa(job #1058348)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 15 decembrie 2013 14:12:24
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <algorithm>
#include <iostream>
using namespace std;
#include <stdio.h>
#include <math.h>

#define HOR -99999999
FILE *in=fopen("trapez.in","r"),*out=fopen("trapez.out","w");

int N;
unsigned long REZ=0;
struct punct
{
 int x,y;
}p[1002];


long double t[1000020 ];

void _read()
 {
   fscanf(in,"%d",&N);

  for(int i=0;i<N;i++)
    {
     fscanf(in,"%d",&p[i].x);
     fscanf(in,"%d",&p[i].y);
    }

 }


int main()
{
int k=0,i,j;
_read();

 for( i=0;i<N;i++)
  for( j=i+1;j<N;j++)
   {

      if(p[i].y!=p[j].y)
       t[k]= (double)(p[i].x-p[j].x)/(p[i].y-p[j].y);
      else
       t[k]=HOR;

     k++;
  };

 sort(t,t+k);

  for( i=0;i<k-1 ;i++)
  {
   j=i+1;
    while(t[i]==t[j] )
     j++;

   j=j-i;
   i+=j-1;
   REZ+=j*(j-1)/2;

  }

  fprintf(out,"%lu",REZ);

return 0;
}