大意就是把一堆东西(N<=20)分两部分,使差最小,当然爆搜了

但是同样的代码,按C提交就AC了,按C++提交就CE……无语,最无语的是这个在我的机器上C++ Builder编译能过啊

初学Cpp,谁好心看看……

16:36:24

 1#include <stdio.h>;
 2#include <math.h>;
 3
 4long a[30];
 5long m1,m2,n,ans,i;
 6
 7int dfs(int k){
 8if (k==n+1)
 9        {
10        long t=fabs(m1-m2);
11        if (t<ans) ans=t;
12        return 0;
13        }

14m1+=a[k];
15dfs(k+1);
16m1-=a[k];
17m2+=a[k];
18dfs(k+1);
19m2-=a[k];
20return 0;
21}

22
23int main()
24{
25scanf("%d",&n);
26for (i=1;i<=n;i++) scanf("%d",&a[i]);
27m1=0; m2=0; ans=200000000;
28dfs(1);
29printf("%d\n",ans);
30return 0;
31}

32