比赛 |
20121108 |
评测结果 |
EEEEEAEEEE |
题目名称 |
造房子的学问 |
最终得分 |
10 |
用户昵称 |
日光。 |
运行时间 |
0.705 s |
代码语言 |
C++ |
内存使用 |
1.96 MiB |
提交时间 |
2012-11-08 11:54:06 |
显示代码纯文本
#include<cstdio>
using namespace std;
int n,m;
int l1,l2,l3;
int l;
int ans=0xfffffff;
bool f[4]={false};
int bfs(int temp,int flag)
{
if(temp==m)
{
if(flag<ans) ans=flag;
}
else
{
for(int r=1;r<=5;r++)
{
if(r==1) bfs(n-l,flag+1);
if(r==2) bfs(n/2,flag+1);
if(r==3)
{
if(f[1]==false)
{
f[1]=true;
bfs(n+l1,flag+1);
f[1]=false;
}
else continue;
}
if(r==4)
{
if(f[2]==false)
{
f[2]=true;
bfs(n+l2,flag+1);
f[2]=false;
}
else continue;
}
if(r==5)
{
if(f[3]==false)
{
f[3]=true;
bfs(n+l3,flag+1);
f[3]=false;
}
else continue;
}
}
}
}
int main()
{
freopen("wood.in","r",stdin);
freopen("wood.out","w",stdout);
scanf("%d%d",&n,&m);
scanf("%d%d%d",&l1,&l2,&l3);
scanf("%d",&l);
bfs(n,0);
printf("%d\n",ans);
return 0;
}