Submission #1013302

#TimeUsernameProblemLanguageResultExecution timeMemory
1013302YassineBenYounesBank (IZhO14_bank)C++17
100 / 100
506 ms139092 KiB
#include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef double db; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define pbds tree<int, null_type, less<int>,rb_tree_tag, tree_order_statistics_node_update> using namespace __gnu_pbds; ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;} // greatest common divisor (PGCD) ll lcm(ll a , ll b) {return (a * b) / gcd(a , b);} // least common multiple (PPCM) int dx[8] = {1, 0, 0, -1, 1, 1, -1, -1}; int dy[8] = {0, 1, -1, 0, 1, -1, -1, 1}; #define endl "\n" #define ss second #define ff first #define all(x) (x).begin() , (x).end() #define pb push_back #define vi vector<int> #define vii vector<pair<int,int>> #define vl vector<ll> #define vll vector<pair<ll,ll>> #define pii pair<int,int> #define pll pair<ll,ll> #define pdd pair<double,double> #define vdd vector<pdd> #define speed ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; ////////////////////Only Clear Code////////////////////////// void usaco_problem(){ freopen("milkvisits.in", "r", stdin); freopen("milkvisits.out", "w", stdout); } void init(){ #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif // ONLINE_JUDGE } //#define int ll const int mx = (1 << 20) + 7; const int LOG = 25; const int inf = 1e9; const ll mod = 1e9+7; const int sq = 350; int a[25]; int b[25]; int value[mx]; vi poss[mx]; int dp[mx][25]; int n,m; bool solve(int mask, int ind){ if(ind == n){ return dp[mask][ind] = 1; } if(dp[mask][ind] != -1)return dp[mask][ind]; bool ok = 0; for(int x : poss[a[ind]]){ if(x&mask)continue; ok |= solve(mask | x, ind + 1); } return dp[mask][ind] = ok; } int main(){ speed; cin >> n >> m; for(int i = 0;i < n; i++){ cin >> a[i]; } for(int i = 0 ; i < m;i++){ cin >> b[i]; } memset(dp, -1, sizeof dp); for(int mask = 0;mask < (1 << m); mask++){ for(int i = 0; i < m;i++){ if(mask & (1 << i)){ value[mask] += b[i]; } } poss[value[mask]].pb(mask); } cout << (solve(0, 0) ? "YES" : "NO") << endl; } /* NEVER GIVE UP! DOING SMTHNG IS BETTER THAN DOING NTHNG!!! Your Guide when stuck: - Continue keyword only after reading the whole input - Don't use memset with testcases - Check for corner cases(n=1, n=0) - Check where you declare n(Be careful of declaring it globally and in main) */

Compilation message (stderr)

bank.cpp: In function 'bool solve(int, int)':
bank.cpp:63:30: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   63 |         return dp[mask][ind] = 1;
      |                ~~~~~~~~~~~~~~^~~
bank.cpp:71:26: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   71 |     return dp[mask][ind] = ok;
      |            ~~~~~~~~~~~~~~^~~~
bank.cpp: In function 'void usaco_problem()':
bank.cpp:32:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |     freopen("milkvisits.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:33:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |     freopen("milkvisits.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp: In function 'void init()':
bank.cpp:39:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 | freopen("input.txt", "r", stdin);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:41:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 | freopen("output.txt", "w", stdout);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...