比赛 |
练习12 |
评测结果 |
EEEEEEEEE |
题目名称 |
跳房子 |
最终得分 |
0 |
用户昵称 |
Hyoi_ctime |
运行时间 |
0.613 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2017-06-30 11:46:09 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#define lyj best
using namespace std;
int x;
int ans;
int vis[100];
int d[8][8];
void read(){
freopen("numgrid.in","r",stdin);
freopen("numgrid.out","w",stdout);
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>x;
d[i][j]=x;
}
}
}
void dfs(int x,int y,int dep,int sum)
{
int nowsum=sum*10 + d[x][y];
if(dep==6){
if(!vis[sum]){
ans++;
vis[sum]=true;
}
return;
}
if(x+1<=5)dfs(x+1,y,dep+1,nowsum);
if(y+1<=5)dfs(x,y+1,dep+1,nowsum);
if(x-1>0)dfs(x-1,y,dep+1,nowsum);
if(y-1>0)dfs(x,y-1,dep+1,nowsum);
}
int main()
{
read();
for(int i = 1; i <= 5; ++ i)
for(int j = 1; j <= 5; ++ j)
dfs(i, j, 0, 0);
printf("%d",ans);
}