题解
2025-07-19 13:42:14
发布于:广东
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=25;
int a,b,c,t;
bool f[25][25][25],s[25];
void dfs(int x,int y,int z)
{
if(f[x][y][z]) return ;
f[x][y][z]=true;
if(x==0) s[z]=true;
//a-b
t=min(x,b-y);
dfs(x-t,y+t,z);
//b-a
t=min(y,a-x);
dfs(x+t,y-t,z);
//b-c
t=min(y,c-z);
dfs(x,y-t,z+t);
//c-b
t=min(z,b-y);
dfs(x,y+t,z-t);
//a-c
t=min(x,c-z);
dfs(x-t,y,z+t);
//c-a
t=min(z,a-x);
dfs(x+t,y,z-t);
return ;
}
int main()
{
cin>>a>>b>>c;
dfs(0,0,c);
for(int i=0;i<=c;i++)
{
if(s[i]) cout<<i<<" ";
}
return 0;
}
这里空空如也
有帮助,赞一个