60分,1RE,3WA
查看原帖
60分,1RE,3WA
884813
_luogu_huowenshuo_楼主2025/2/6 14:44
#include<bits/stdc++.h>
using namespace std;
int ans[114][114][114];
bool ok[114];
int aa,bb,cc;
void dfs(int a,int b,int c)
{
    if(ans[a][b][c])
        return;
    ans[a][b][c]=1;
    if(a==0)    
        ok[c]=true;
    int ab=min(a,bb-b);
    dfs(a-ab,b+ab,c);
    int ba=min(b,aa-a);
    dfs(a+ba,b-ba,c);
    int ac=min(a,cc-c);
    dfs(a-ac,b,c+ac);
    int ca=min(b,aa-a);
    dfs(a+ca,b,c+ca);
    int bc=min(b,cc-c);
    dfs(a,b-bc,c+bc);
    int cb=min(c,bb-b);
    dfs(a,b+cb,c-cb);
}
int main() 
{
    
    cin>>aa>>bb>>cc;
    if(cc==0)
    {
        cout<<0;
        return 0;
    }
    for(int i=0;i<=114;i++)
        ok[i]=0;
    dfs(0,0,cc);
    for(int i=0;i<=cc;i++)
        if(ok[i])
            cout<<i<<" ";
    return 0;
}
2025/2/6 14:44
加载中...