rt
样例1过了
样例2莫名re
求助
#include<bits/stdc++.h>
using namespace std;
int a,b,c,s[500],k=0;
int f[25][25][25];
void dfs(int x,int y,int z)
{
if(f[x][y][z])
{
return;
}
f[x][y][z]=1;
if(x==0)
{
s[++k]=z;
}
if(z)
{
if(b>y)
dfs(x,min(b,y+z),(y+z)<=b?0:(z+y-b));
if(a>x)
dfs(min(a,z+x),y,(z+x)<=a?0:(x+z-a));
}
if(x)
{
if(b>y)
{
dfs((x+y)<=b?0:(x+y-b),min(b,x+y),z);
}
if(c>z)
{
dfs((x+z)<=c?0:(x+z-b),y,min(c,x+z));
}
}
if(y)
{
if(a>x)
{
dfs(min(a,x+y),(x+y)<=a?0:(x+y-b),z);
}
if(z>c)
{
dfs(x,(y+z)<=c?0:(y+z-b),min(c,y+z));
}
}
}
int main() {
cin>>a>>b>>c;
dfs(0,0,c);
sort(s+1,s+k+1);
for(int i=1;i<=k;i++)
{
if(s[i]!=0&&s[i]!=s[i-1])
cout<<s[i]<<' ';
}
return 0;
}