求助大佬,一个点都没过!!!

回复帖子

@wdzxghl 2020-06-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;
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。