Cod sursa(job #326090)

Utilizator Andrei200Andrei200 Andrei200 Data 23 iunie 2009 19:22:18
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <cstdio>   
#include <algorithm>      
     
using namespace std;      
  
#define file_in "trapez.in"   
#define file_out "trapez.out"   
  
#define Nmax 1010   
#define Inf 0x3f3f3f3f
  
/*struct panta   
{   
    int x,y;   
}*/   
int p[Nmax*Nmax];   
  
int n,t,nr,maxim,a,b;   
int x[Nmax];   
int y[Nmax];   
  
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)   
         {   
			//nr++;
            if (x[i]-x[j]==0) a++;   
            else    
            if (y[i]-y[j]==0) b++;   
            else  
            { 
				nr++;
                p[nr]=(y[j]-y[i])/(x[j]-x[i]);
				
            }   
         }   
       
    sort(p+1,p+nr+1);       
            
    t=1;   
    maxim=0;   
    for (i=1;i<nr;++i)   
    {   
        if (p[i]==p[i+1])   
            t++;   
        else  
            t=1;   
        if (t>maxim) maxim=t;   
    }   
    
	/*for (i=1;i<=nr;++i)
		 printf("%d\n", p[i]);*/
    printf("%d", maxim*(maxim-1)/2+a*(a-1)/2+b*(b-1)/2);   
       
    fclose(stdout);   
       
    return 0;   
}