记录编号 339520 评测结果 AAAAAAAAAA
题目名称 [USACO 1.4] 母亲的牛奶 最终得分 100
用户昵称 Gravatar浮生随想 是否通过 通过
代码语言 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);
}