func_code_string: #include <iostream>   #include <unordered_map>   #include <list>   #include <queue>   #include <string.h>   #include <stack>   #include <set>   #include <unordered_set>   #include <map>   #include <climits>   #include <algorithm>   #include <math.h>   #include <vector>   #include <iomanip>   #include <ctype.h>   using namespace std;   #define ll long long int   const int MOD = 1e9 + 7;   ll facto[200010];   void fact()   {       facto[0] = 1;       for (ll i = 1; i < 200010; i++)       {           facto[i] = (i * facto[i - 1]) % MOD;       }   }   bool is(ll cnt[])   {       for (int i = 0; i < 26; i++)       {           if (cnt[i] >= 2)               return false;       }       return true;   }   int main()   {       // fact();       ios_base::sync_with_stdio(false);       cin.tie(NULL);       ll n;       cin >> n;       ll a[n];       ll sum = 0;       for (ll i = 0; i < n; i++)       {           cin >> a[i];           sum += a[i];       }       if ((sum % 2) != 0)       {           cout <<  0  n ;           return 0;       }       bool dp[n + 1][sum / 2 + 1];       for (ll i = 0; i <= n; i++)       {           for (ll j = 0; j <= sum / 2; j++)           {               dp[i][j] = false;           }       }       for (ll i = 0; i <= n; i++)       {           dp[i][0] = true;       }       for (ll j = 0; j <= sum / 2; j++)       {           dp[0][j] = false;       }       for (ll i = 1; i <= n; i++)       {           for (ll j = 1; j <= sum / 2; j++)           {               dp[i][j] = dp[i - 1][j];               if (j - a[i - 1] >= 0)               {                   dp[i][j] = dp[i][j] || dp[i - 1][j - a[i - 1]];               }           }       }       if (dp[n][sum / 2] == false)       {           cout <<  0  n ;           return 0;       }       ll mini = LLONG_MAX;       ll pos = -1;       for (ll i = 0; i < n; i++)       {           if (a[i] % 2)           {               cout <<  1  n ;               cout << i + 1 <<   n ;               return 0;           }       }       for (ll i = 0; i < n; i++)       {           ll steps = 0;           while (a[i] % 2 == 0)           {               a[i] /= 2;               steps++;           }           if (mini > steps)           {               mini = steps;               pos = i;           }       }       cout <<  1  n ;       cout << pos + 1 <<   n ;   }   