记录编号 |
339520 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO 1.4] 母亲的牛奶 |
最终得分 |
100 |
用户昵称 |
浮生随想 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.011 s |
提交时间 |
2016-11-05 21:20:47 |
内存使用 |
0.30 MiB |
显示代码纯文本
#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 25
bool f[maxn][maxn][maxn];
int a,b,c,ans=0,ask[maxn],tot=0;
void dfs(int x,int y,int z){
if(f[x][y][z])return ;
f[x][y][z]=1;
if(x==0)ask[++tot]=z;
if(z>0){
if(z+x<a)dfs(z+x,y,0);
else {
int re=(z+x)-a;
dfs(a,y,re);
}
if(z+y<b)dfs(x,z+y,0);
else {
int re=(z+y)-b;
dfs(x,b,re);
}
}
if(y>0){
if(y+x<a)dfs(y+x,0,z);
else {
int re=(y+x)-a;
dfs(a,re,z);
}
if(z+y<c)dfs(x,0,z+y);
else {
int re=(z+y)-c;
dfs(x,re,c);
}
}
if(x>0){
if(y+x<b)dfs(0,x+y,z);
else {
int re=(y+x)-b;
dfs(re,b,z);
}
if(z+x<c)dfs(0,y,z+x);
else {
int re=(z+x)-c;
dfs(re,y,c);
}
}
}
int main(){
freopen("milk3.in","r",stdin);
freopen("milk3.out","w",stdout);
scanf("%d%d%d",&a,&b,&c);
dfs(0,0,c);
sort(ask+1,ask+1+tot);
for(int i=1;i<=tot;i++)printf("%d ",ask[i]);
//while(1);
}