Cod sursa(job #387189)

Utilizator Andrei200Andrei200 Andrei200 Data 26 ianuarie 2010 23:15:44
Problema Count Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <cstdio>
#include <cstring>

#define file_in "count.in"
#define file_out "count.out"

int aa[2010][2010],i,j,k,nr,max,x[30100],y[30100],m,n,frecv[10100],a,b,c,d;

int main()
{
	int i;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &n, &m);
	
	for (i=1;i<=m;++i)
	{
		//scanf("%d %d", &x[i], &y[i]);
	    scanf("%d %d", &x[i], &y[i]);
		aa[x[i]][y[i]]=aa[y[i]][x[i]]=1;
	}
	
	
	for (i=1;i<=n;++i)
		 for (j=i+1;j<=n;++j)
			   for (k=j+1;k<=n;++k)
				    if (aa[i][j] && aa[i][k] && aa[j][k])
						nr++;
	
		max=3;
		
		int nrr=0;
	for (i=1;i<=m;++i)
         for (j=i+1;j<=m;++j)
 		 {
			 a=x[i];
			 b=y[i];
			 c=x[j];
			 d=y[j];
			 memset(frecv,0,sizeof(frecv));
			 if (a!=c && b!=d && a!=d && b!=c)
			 {
				for (k=1;k<=m;++k)
                     if ((x[k]==a || x[k]==b || x[k]==c || x[k]==d) && 
						 (y[k]==a || y[k]==b || y[k]==c || y[k]==d))
						 frecv[x[k]]++,
						 frecv[y[k]]++;
			 }
			 if (frecv[a]>=3 && frecv[b]>=3 && frecv[c]>=3 && frecv[d]>=3)
				 nrr++;
		 }
			 
	if (nrr!=0)
		max=4,
		nr=nrr;
		 
	printf("%d %d", max,nr);
	
	fclose(stdin);
	fclose(stdout);
		
	
	return 0;
	
}