Submission #321038

# Submission time Handle Problem Language Result Execution time Memory
321038 2020-11-10T17:23:39 Z tushar_2658 Bank (IZhO14_bank) C++14
0 / 100
6 ms 364 KB
#include "bits/stdc++.h"
using namespace std;

const int maxn = 21;

bool dp[maxn][1 << maxn];
int a[maxn], b[maxn];
int n, m;
vector<int> make[maxn];

int main(int argc, char const *argv[])
{
  scanf("%d %d", &n, &m);
  for(int i = 0; i < n; ++i){
    scanf("%d", &a[i]);
  }
  for(int i = 0; i < m; ++i){
    scanf("%d", &b[i]);
  }
  for(int mask = 0; mask < (1 << m); ++mask){
    int sum = 0;
    for(int i = 0; i < m; ++i){
      if((mask >> i) & 1){
        sum += a[i];
      }
    }
    for(int i = 0; i < n; ++i){
      if(a[i] == sum){
        make[i].push_back(mask);
      }
    }
  }
  for(int i = 0; i < n; ++i){
    for(int mask = 0; mask < (1 << m); ++mask){
      for(int j = 0; j < m; ++j){
        if(i == 0 && j == 0 || (i > 0 && dp[i - 1][mask])){}
        else continue;
        for(auto nmask : make[i]){
          if(nmask & mask == 0){
            dp[i][nmask ^ mask] = 1;
          }
        }
      }
    }
  }
  bool good = 0;
  for(int i = 0; i < (1 << m); ++i){
    if(dp[n - 1][i]){
      good = 1;
      break;
    }
  }
  good ? cout << "YES" << '\n' : cout << "NO" << '\n';

  return 0;
}

Compilation message

bank.cpp: In function 'int main(int, const char**)':
bank.cpp:36:19: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   36 |         if(i == 0 && j == 0 || (i > 0 && dp[i - 1][mask])){}
      |            ~~~~~~~^~~~~~~~~
bank.cpp:39:27: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   39 |           if(nmask & mask == 0){
      |                      ~~~~~^~~~
bank.cpp:13:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   13 |   scanf("%d %d", &n, &m);
      |   ~~~~~^~~~~~~~~~~~~~~~~
bank.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   15 |     scanf("%d", &a[i]);
      |     ~~~~~^~~~~~~~~~~~~
bank.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   18 |     scanf("%d", &b[i]);
      |     ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 1 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 1 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -