Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define OO INT_MAX
- const int N = 1e2 + 2e1;
- int optA = 0 ,optB = OO;
- bool cur[N] ,opt[N];
- int n ,A[N];
- void BT(int i ,int sumA ,int sumB){
- if( i > n ){
- if( abs(sumA - sumB ) < abs(optA - optB)){
- optA = sumA;
- optB = sumB;
- for(int i=1 ; i<=n ; i++) opt[i] = cur[i];
- }
- return;
- }
- cur[i] = 0;
- BT(i+1 , sumA , sumB + A[i] );
- cur[i] = 1;
- BT(i+1 , sumA + A[i] , sumB);
- cur[i] = 0;
- }
- int main() {
- cin >> n;
- for(int i=1 ; i <= n ; i++)
- cin >> A[i];
- BT( 1 , 0 , 0 );
- cout << optA << ' ' << optB << endl;
- for(int i = 1 ; i <= n ; i++)
- cout << opt[i] << ' ';
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement