记录编号 |
496977 |
评测结果 |
AAAAAAAAA |
题目名称 |
跳房子 |
最终得分 |
100 |
用户昵称 |
增强型图元文件 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.556 s |
提交时间 |
2018-05-13 17:40:13 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
vector<string> v;
void d(int k[5][5],int x,int y,int c,string s){
if(c==1){
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
char a=k[i][j]+48;
string ss;
ss+=a;
if(j+1<5){
d(k,i,j+1,c+1,ss);
}
if(j-1>-1){
d(k,i,j-1,c+1,ss);
}
if(i-1>-1){
d(k,i-1,j,c+1,ss);
}
if(i+1<5){
d(k,i+1,j,c+1,ss);
}
}
}
}
else if(c==6){
char a=k[x][y]+48;
s+=a;
int t=0;
for(int i=0;i<v.size();i++){
if(s!=v[i]){
t++;
}
}
if(t==v.size()){
v.push_back(s);
}
return;
}
else if(c!=1&&c!=6){
char a=k[x][y]+48;
s+=a;
if(y+1<5){
d(k,x,y+1,c+1,s);
}
if(y-1>-1){
d(k,x,y-1,c+1,s);
}
if(x-1>-1){
d(k,x-1,y,c+1,s);
}
if(x+1<5){
d(k,x+1,y,c+1,s);
}
}
}
int main(){
ifstream cin("numgrid.in");
ofstream cout("numgrid.out");
int k[5][5]={0},sum=0;
string s;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>k[i][j];
}
}
d(k,1,1,1,s);
cout<<v.size();
return 0;
}