跳不出去QWQ
查看原帖
跳不出去QWQ
1186739
Ymy1201楼主2024/8/24 11:45
#include<bits/stdc++.h>
using namespace std;
int a,b,c,w[21],k;
bool vis[21][21][21];
void bfs(int a1,int b1,int c1) {
	if(vis[a1][b1][c1]==1)return ;
	if(a1==0)w[++k]=c1;
	vis[a1][b1][c1]=1;
	if(c1!=0) {
		if(b1!=b)bfs(a1,b1+min(c,b-b1),c1-min(c,b+b1));
		if(a1!=a)bfs(a1+min(c,a+a1),b1,c1-min(c,a+a1));
	}
	if(b1!=0) {
		if(c1!=c)bfs(a1,b1-min(b,c-c1),c1+min(b,c-c1));
		if(a1!=a)bfs(a1+min(b,a-a1),b1-min(b,a-a1),c1);
	}
	if(a1!=0) {
		if(c1!=c)bfs(a1-min(a,c-c1),b1,c1+min(a,c-c1));
		if(b1!=b)bfs(a1-min(a,b-b1),b1+min(a,b-b1),c1);
	}
}
int main() {
	scanf("%d%d%d",&a,&b,&c);
	bfs(0,0,c);
	sort(w+1,w+k+1);
	for(int i=1; i<=k; i++)printf("%d ",w[i]);
	return 0;
}
有dalao看看吗?
2024/8/24 11:45
加载中...