枚举6种情况但就是错
#include<bits/stdc++.h>
using namespace std;
bool v[21][21][21],f[21];
int a,b,c;
void bfs(int A,int B,int C)
{
if(v[A][B][C]==1) return;
else v[A][B][C]=1;
if(A==0&&!f[C]) f[C]=1;
if(a-A>=C) bfs(A+C,B,0);
else if(a-A<C) bfs(a,B,C+A-a);
if(b-B>=C) bfs(A,B+C,0);
else if(b-B<C) bfs(A,b,C+B-b);
if(a-A>=B) bfs(A+B,0,C);
else if(a-A<B) bfs(a,B+A-a,C);
if(c-C>=B) bfs(A,0,B+C);
else if(c-C<B) bfs(A,B+C-c,c);
if(b-B>=A) bfs(0,A+B,C);
else if(b-B<A) bfs(A+B-b,b,C);
if(c-C>=A) bfs(0,B,C+A);
else if(c-C<A) bfs(A+C-c,B,c);
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
bfs(0,0,c);
for(int i=c-b;i<=c;i++)
{
if(f[i])
printf("%d ",i);
}
return 0;
}
QAQ