Cod sursa(job #444497)

Utilizator freakingVlad Eu freaking Data 20 aprilie 2010 16:40:01
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>
#include<algorithm>
using namespace std;



struct dat
{
 int x;
 int y;
};
dat a[102];
int cc[10002],d[10002];


double b[10002];

double panta (int i, int j)
{
 double m;
 float zx,zxx;
 zxx= a[i].y - a[j].y;
 zx= a[i].x - a[j].x;
 m=(double)zxx/zx;
 return m;
 }
int main()
{
 freopen("trapez.in","r",stdin);
 freopen("trapez.out","w",stdout);
 int i,j,q,n,p=1;
 scanf("%d",& n);
 for(i=1;i<=n;i++)
  scanf("%d%d",&a[i].x,&a[i].y);
 int z=0;
 q=1;
 for(i=1;i<=n;i++)
  for(j=i+1;j<=n;j++)
  {
    if(a[i].x!=a[j].x )
    {
        if(a[i].y!=a[j].x)
        {
            b[q]=panta(i,j);
            q++;
        }
    }
    else
    {
        z++;
    }
  }
 sort(b+1,b+q);
 

 long nr;
 float c;
 int t;
 c=b[1];
 nr=0;
 t=0;
 for(i=1;i<=q;i++)
 {
     if(b[i]==c)
        t++;
    else
    {
        if(t!=1)
        nr=nr+(t*(t-1)/2);
        c=b[i];
        t=1;
    }
 }
	nr=nr+((z-1)*z/2);

 printf("%ld",nr);
 return 0;
}