比赛 练习12 评测结果 AAAAAAAAA
题目名称 跳房子 最终得分 100
用户昵称 NVIDIA 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2017-06-30 13:17:28
显示代码纯文本
/*看数据以为floodfill,结果是模拟*/ 
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXNNN=1000002;
char buf[1<<15],*fs,*ft;
inline char getc() {return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}//比传统快读慢............ 
inline int q()
{
    int x=0,f=1; char ch=getc();
    while(!isdigit(ch)){if(ch=='-')f=-1;ch=getc();}
    while(isdigit(ch)){x=x*10+ch-'0';ch=getc();}return x*f;
}
/*char mas[1<<15],*FS=mas,*FT=mas+(1<<15);
#define ot(x) (fs==ft?fwrite(mas,1,1<<15,stdout),*(FS=mas)++=x:*FS++=x)
inline void w(int x)
{
    if(x<0) {ot(45);x=-x;}
    static char s[15],*b;b=s;
    if(!x)*b++=48;
    for(;x;*b++=x%10+48,x/=10);
    for(;b--!=s;ot(*b));
}*/
int a[6][6],dx[]={0,0,1,-1},dy[]={1,-1,0,0};
bool t[MAXNNN];
inline void dfs(int x,int y,int n,int deep){if(deep==6){t[n]=1;return;}for(int i=0;i<4;i++)if(x+dx[i]>=1&&y+dy[i]>=1&&x+dx[i]<=5&&y+dy[i]<=5)dfs(x+dx[i],y+dy[i],10*n+a[x+dx[i]][y+dy[i]],deep+1);}
inline int aaa()
{
	freopen("numgrid.in","r",stdin);freopen("numgrid.out","w",stdout);
	int i,j,ans=0;
	for(i=1;i<=5;i++)for(j=1;j<=5;j++)a[i][j]=q();
	for(i=1;i<=5;i++)for(j=1;j<=5;j++)dfs(i,j,a[i][j],1);
	for(i=0;i<1000000;i++)if(t[i])ans++;
	printf("%d\n",ans);
	    
}
int aa=aaa();
int main(){;
}