记录编号 282000 评测结果 AAAAAAAAA
题目名称 跳房子 最终得分 100
用户昵称 Gravatar521 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2016-07-12 21:10:07 内存使用 0.00 MiB
显示代码纯文本
#include<stdio.h>
#include<string.h>
inline void read(int &x)
{
	char ch;
	while(ch=getchar(),ch<'0'||ch>'9');
	x=(ch^'0');
	while(ch=getchar(),ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch^'0');
}
bool b[1000010]={0};
int a[10][10]={0},cnt=0,dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
void dfs(int i,int j,int x,int deep)
{
	if(deep>5){
		if(!b[x])
		  cnt++,b[x]=1;
		return;
	}
	x=(x<<3)+(x<<1)+a[i][j];
	for(int k=1;k<=4;k++)
	  if(i+dx[k]>=1&&i+dx[k]<=5&&j+dy[k]>=1&&j+dy[k]<=5)
	    dfs(i+dx[k],j+dy[k],x,deep+1);
}
int _521()
{
	freopen("numgrid.in","r",stdin);
	freopen("numgrid.out","w",stdout);
	int n=5,i,j;
	for(i=1;i<=n;i++) for(j=1;j<=n;j++) read(a[i][j]);
	memset(b,false,sizeof(b));
	for(i=1;i<=n;i++)
	  for(j=1;j<=n;j++)
	    dfs(i,j,0,0);
	printf("%d\n",cnt);
	return 0;
}
int _520=_521();
int main(){;}