求助大佬,一个点都没过!!!
查看原帖
求助大佬,一个点都没过!!!
266774
wdzxghl楼主2020/6/30 12:32
#include<bits/stdc++.h>
using namespace std;
int A,B,C;
int ans[50];
int num;
void dfs(int x,int y,int z) {
	if(x==0) {
		ans[++num]=z;
	}
	if(z>0) {
		if(z+x>=A)dfs(A,y,z-A+x);
		if(z+x<A)dfs(z+x,y,0);
		if(z+y>=B)dfs(x,B,z-B+y);
		if(y+z>=C)dfs(x,y-C+z,C);
	}
	if(y>0) {

		if(z+y<B)dfs(x,z+y,0);
		if(x+y>=A)dfs(A,y-A+x,z);
		if(x+y<A)dfs(x+y,y-A+x,z);
		if(y+z<C)dfs(x,0,z+y);

	}

	if(x>0) {
		if(y+x>=B)dfs(x-B+y,B,z);
		if(x+z>=C)dfs(x-C+z,y,C);
		if(x+z<C)dfs(0,y,x+z);
		if(y+x<B)dfs(0,x+y,z);


	}

}
int main() {

	cin>>A>>B>>C;
	dfs(0,0,C);
	sort(ans,ans+num);
	for(int i=1; i<=num; i++)cout<<ans[i]<<" ";
	return 0;
}
2020/6/30 12:32
加载中...