洛谷P2036 [COCI2008-2009#2] PERKET题解

哎,因为小错误卡了很长时间,所以一句忠告:代码要一次性打对啊少年。
题解来了:

#include 
using namespace std;
int n, ans = 99999999;
int a[10 + 2], b[10 + 2]; //酸度和苦度 
void dfs(int i, int x, int y){
    if (i > n) {    	
        if (x == 1 && y == 0) return;   
        ans = min(abs(x - y), ans);  
        return;
    }
    dfs(i + 1, x * a[i], y + b[i]);//加配料
    dfs(i + 1, x, y); //不加啦
}
int main() {
	cin >> n; 
	for (int i = 1; i <= n; i++) {
		cin >> a[i] >> b[i];
	}
	dfs(1, 1, 0);
	cout << ans << endl;
	return 0;
}

你可能感兴趣的:(洛谷P2036 [COCI2008-2009#2] PERKET题解)