Cod sursa(job #2325427)

Utilizator cosceexcosceex cosceex Data 22 ianuarie 2019 17:13:56
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb

#include <cstdio>
#include <algorithm>
using namespace std;

double x[1000001];

struct point { int x, y;};
point a[1001];
int n, t;
long long sum=0;
void citire()
{
  freopen("trapez.in", "r", stdin);
  scanf("%d\n", &n);
  for(int i=1;i<=n;i++) scanf("%d %d\n", &a[i].x, &a[i].y);

}

void calcul()
{
  int i, j;
  for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
     if(a[i].x-a[j].x!=0) x[++t]=(double)(a[i].y-a[j].y)/(double)(a[i].x-a[j].x);
     else x[++t]=0x3f3f3f3f;

  sort(x+1,x+t+1);

  int nr=1;
  for(i=2;i<=t;i++)
    if(x[i]==x[i-1]) { nr++; }
    else { sum+=(long long)(nr*(nr-1))/2; nr=1;}

sum+=(long long)(nr*(nr-1))/2;
}

int main()
{
  citire();
  calcul();

  freopen("trapez.out", "w", stdout);
  printf("%lld\n",sum);
  return 0;
}