Cod sursa(job #444487)

Utilizator freakingVlad Eu freaking Data 20 aprilie 2010 16:28:14
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 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;
    }
 }

c=cc[1];
t=1;
 for(i=1;i<=z;i++)
 {
     if(c!=cc[z])
     {
        c=cc[z];
        t++;
     }
 }
nr=nr+(t*(t-1)/2);

c=d[1];
t=1;
 for(i=1;i<=p;i++)
 {
     if(c!=d[z])
     {
        c=d[z];
        nr++;
     }
 }
 nr=nr+(t*(t-1)/2);

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