Cod sursa(job #325833)

Utilizator bugyBogdan Vlad bugy Data 22 iunie 2009 17:29:41
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
using namespace std;   
#define dim 302
#include<stdio.h>   
int mat[dim][dim], mat2[dim][dim];
int maxx(int x, int y)
{
if(x>y) return x-y;
else return y-x;
}
int maxx2(int x, int y)
{
if(x>y) return y;
else return x;
}
int main()   
{   
FILE *f=fopen("tir.in","r"), *g=fopen("tir.out","w");   
	int i,kk,c,m,n,j,bi=0,k,maxim=0,max,h,hh,l,ii=0,jj=0,nn,mm;

	fscanf(f,"%d%d%d",&n,&m,&k);

    for(kk=1;kk<=m/2+1;kk++)   
{   
    ++bi;
        for(i=kk;i<=m-kk+1;i++)    
			mat[kk][i]=bi;   
		
        for(i=kk+1;i<=m-kk+1;i++)   
            mat[i][m-kk+1]=bi;
		
        for(i=m-kk;i>=kk;i--)   
            mat[m-kk+1][i]=bi; 
		
          for(i=m-kk;i>=kk+1;i--)   
            mat[i][kk]=bi;
}   

for(i=1;i<=k;i++)
	{fscanf(f,"%d%d",&l,&c);
	mat2[l][c]=1;}
	
	nn=maxx(n,m);
	mm=maxx2(n,m);
for(i=1;i<=nn+1;i++) 
	{max=0;
	for(j=1;j<=nn+1;j++)
		{max=0;
			
			for(h=i;h<=mm+i;h++)
			for(hh=j;hh<=mm+i;hh++)
					if(mat2[h][hh]!=0)
						max=max+mat[h-(n-m)+i][h-(n-m)+i];
		if(max>maxim)
			{maxim=max;ii=i;jj=j;}	
		}		
	}	
fprintf(g,"%d\n%d %d\n",maxim,ii,jj);
	
	
	
		
fclose(f);   
fclose(g);   
  
return 0;}