Cod sursa(job #326085)

Utilizator Andrei200Andrei200 Andrei200 Data 23 iunie 2009 19:01:34
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <cstdio>   
#include <algorithm>      
     
using namespace std;      
  
#define file_in "trapez.in"   
#define file_out "trapez.out"   
  
#define Nmax 1010   
  
struct panta   
{   
    int x,y;   
}   
p[Nmax*Nmax];   
  
int n,t,nr,maxim,a,b;   
int x[Nmax];   
int y[Nmax];   
  
int cmp(panta a, panta b)      
{      
    return (a.x<b.x);      
}      
  
int main()   
{   
    int i,j;   
    freopen(file_in,"r",stdin);   
           
    scanf("%d", &n);   
    for (i=1;i<=n;++i)   
         scanf("%d %d", &x[i],&y[i]);   
    fclose(stdin);   
       
    freopen(file_out,"w",stdout);   
       
    nr=0;   
    for (i=1;i<n;++i)   
         for (j=i+1;j<=n;++j)   
         {   
            if (x[i]-x[j]==0) a++;   
            else    
            if (y[i]-y[j]==0) b++;   
            else  
            {   
             nr++;   
             p[nr].x=y[j]-y[i];   
             p[nr].y=x[j]-x[i];   
            }   
         }   
       
    sort(p+1,p+nr+1,cmp);       
            
    t=0;   
    maxim=0;   
    for (i=1;i<nr;++i)   
    {   
        if (p[i].x*p[i+1].y==p[i].y*p[i+1].x)   
            t++;   
        /*else  
            t=0;   
        if (t>maxim) maxim=t;   */
    }   
       
    printf("%d", t*(t-1)/2+a*(a-1)/2+b*(b-1)/2);   
       
    fclose(stdout);   
       
    return 0;   
}