我是用 bitset 來寫的,雖然題目沒寫 我就先估測資最大總和是 50000 那可以知道 全部插入加減後的最大最小值分別就是正負50000
所有數平移50000 讓他全部都是正的
然後在bitset[50000]=1
每次經過一個就把他分別往左移右移 這樣就可以知道了
bitset<101015> bs,temp;bs[50000]=1;
for(int i=1;i<=n;i++){ temp = bs>>ary[i]; bs = bs<<ary[i]; bs|=temp; }