/*
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 Mother's Milk
最新推荐文章于 2024-04-23 18:31:21 发布