30分WA求助
查看原帖
30分WA求助
1067504
godogod楼主2024/8/21 17:56
#include<bits/stdc++.h>
using namespace std;
int n;
int s[20], b[20];
bool jud[20];
int minn = 0x7f;
long long sour = 1, bitter = 0, pre = 0x7f;
int md;
void dfs(int step)
{
    if(step > n)
    {
        return ;
    }
    else
    {
        for(int i = 1; i <= n; i++)
        {
            if(jud[i] == false)
            {
                sour *= s[i];
                bitter += b[i];
                jud[i] = true;
                int k = abs(sour - bitter);
                md = min(minn, k);
                pre = minn;
                minn = md;
                dfs(step + 1);
                minn = pre;
                jud[i] = false;
                sour /= s[i];
                bitter -= b[i];
            }
        }
    }
}
int main()
{
    cin >> n;
    memset(jud, false, sizeof(jud));
    for(int i = 1; i <= n; i++)
    {
        cin >> s[i] >> b[i];
    }
    dfs(1);
    cout << md;
    return 0;
}
2024/8/21 17:56
加载中...