Cod sursa(job #22930)

Utilizator nemesisIchim Alexandru Eugen nemesis Data 27 februarie 2007 20:35:42
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<stdlib.h>

int n, k;
struct nod1 {int x, y;} p[1010];
struct nod2 {int s, j;} seg[1000010];

int comp(const void *i, const void *j)
{
  nod2 *ei= (nod2*)i,
       *ej= (nod2*)j;

  return ei->s* ej->j - ei->j * ej->s;
}

void solve()
{
//  for(int i=1; i<=k; ++i) printf("%d %d\n",seg[i].s, seg[i].j);
//  printf("\n");


  freopen("trapez.out","w",stdout);

  int contor=0;
  for(int i=1; i<=k-1; ++i)
    for(int j=i+1; j<=k; ++j) if( seg[i].s * seg[j].j == seg[i].j * seg[j].s) contor++;
  printf("%d\n",contor);
  
}

int main()
{
  freopen("trapez.in","r",stdin);
  scanf("%d",&n);
  for(int i=1; i<=n; ++i) scanf("%d %d",&p[i].x, &p[i].y);
  for(int i=1; i<=n-1; ++i)
    for(int j=i+1; j<=n; ++j)
      seg[++k].s= p[i].x- p[j].x, seg[k].j= p[i].y- p[j].y;
  qsort(seg+1, k, sizeof(nod2), comp);
  solve();
    
  
  return 0;
}