Submission #945989

#TimeUsernameProblemLanguageResultExecution timeMemory
945989iarahaBank (IZhO14_bank)C++14
100 / 100
295 ms44772 KiB
// Эксперт до 15.04.2024 Насиб #pragma GCC optimize ("Ofast") #include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; #define pf push_front #define pof pop_front #define pb push_back #define pob pop_back #define fi first #define se second #define Yes cout << "YES \n" #define No cout << "NO \n" #define Ferarri ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); //////////////////// the code below //////////////////// bool dp[(1 << 21) + 5][25] = {}; ll mp[(1 << 21) + 5] = {}; signed main(){ Ferarri ll n, m; cin >> n >> m; ll a[n], b[m]; vector<ll>w[n + 5]; vector<ll> can[n + 5]; for (ll i = 0; i < n; i++) { cin >> a[i]; } for (ll i = 0; i < m; i++) { cin >> b[i]; } for (ll i = 0; i < (1 << m); i++) { ll s = 0; for (ll j = 0; j < m; j++) { if (i & (1 << (m - j - 1))) { s += b[j]; } } mp[i] = s; } bool chk = 0; for (ll i = 0; i < n; i++) { for (ll j = 0; j < (1 << m); j++) { if (mp[j] == a[i]) { w[i].pb(j); if (i == 0) { can[0].push_back(j); dp[j][i] = 1; if (n == 1) chk = 1; } } } } for (ll i = 1; i < n; i++) { for (ll j = 0; j < w[i].size(); j++) { for (ll k = 0; k < can[i - 1].size(); k++) { if (!(w[i][j] & can[i - 1][k]) && !dp[w[i][j] + can[i - 1][k]][i]) { dp[w[i][j] + can[i - 1][k]][i] = 1; can[i].push_back(w[i][j] + can[i - 1][k]); if (i == n - 1) chk = 1; } } } } if (chk) Yes; else No; }

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:55:26: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for (ll j = 0; j < w[i].size(); j++) {
      |                        ~~^~~~~~~~~~~~~
bank.cpp:56:30: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |             for (ll k = 0; k < can[i - 1].size(); k++) {
      |                            ~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...