您的位置:首页 > 其它

USACO Mother's Milk

2014-08-13 22:09 323 查看
/*
ID: jinusac1
PROG: milk3
LANG: C++
*/
#include <iostream>
#include <cstdio>
using namespace std;
bool r[30]={false},ss[203000]={false};
int A,B,C;
void dfs(int a,int b,int c)
{
int num=a*10000+b*100+c;
if(ss[num]) return ;
ss[num]=true;
if(!a) r[c]=true;
if(a){
if(a>(B-b)) dfs(a-B+b,B,c);
else dfs(0,b+a,c);

if(a>(C-c)) dfs(a-C+c,b,C);
else dfs(0,b,c+a);
}

if(b){
if(b>(A-a)) dfs(A,b-A+a,c);
else dfs(a+b,0,c);

if(b>(C-c)) dfs(a,b-C+c,C);
else dfs(a,0,c+b);
}

if(c){
if(c>(A-a)) dfs(A,b,c-A+a);
else dfs(a+c,b,0);

if(c>(B-b)) dfs(a,B,c-B+b);
else dfs(a,b+c,0);
}
}
int main()
{
cin>>A>>B>>C;
dfs(0,0,C);
for(int i=0;i<C;i++) if(r[i])
cout<<i<<" ";
cout<<C<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  USACO