狂暴石(计蒜客)

 

 

 

 1 #include<iostream>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 using namespace std;
 5 int a[15][2];
 6 int min_ = 0x3f3f3f3f;
 7 void dfs(int n, int index, int suply, int sum)
 8 {
 9     if(index>1&&index<=n+1)
10     {
11        if(abs(suply-sum)<min_)
12        {
13            min_=abs(suply-sum);
14        }
15     }
16     for(int i=index; i<=n;++i)
17     {
18         if(i==n&&index!=0)
19         {
20            dfs(n,i+1,suply*1,sum);
21         }else if(i<n)
22         {
23             dfs(n,i+1,suply*a[i][0],sum+a[i][1]);
24         }
25     }
26 }
27 int main()
28 {
29     int n;
30     cin>>n;
31     for(int i=0;i<n;++i)
32     {
33         cin>>a[i][0];
34         cin>>a[i][1];
35     }
36     dfs(n,0,1,0);
37     cout<<min_;
38     return 0;
39 }

 

posted @ 2020-03-20 21:58  caxi  阅读(440)  评论(0编辑  收藏  举报