Advertisement
cosenza987

sua mae a milanesa

May 11th, 2022
673
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. //Слава Україні, Героям слава 🇺🇦
  2.  
  3. #include <bits/stdc++.h>
  4.  
  5. using namespace std;
  6.  
  7. const int N = 107;
  8.  
  9. vector<int> dp[N][N][N];
  10. int cnt[N];
  11.  
  12. int main() {
  13.     ios_base::sync_with_stdio(false);
  14.     cin.tie(0);
  15.     int n, k;
  16.     cin >> n >> k;
  17.     vector<int> v(n);
  18.     for(int i = 0; i < n; i++) {
  19.         cin >> v[i];
  20.         cnt[v[i]]++;
  21.     }
  22.     auto x = v;
  23.     sort(v.begin(), v.end());
  24.     v.erase(unique(v.begin(), v.end()), v.end());
  25.     for(int i = 1; i <= v.size(); i++) {
  26.         for(int j = 0; j <= 100; j++) {
  27.             for(int l = 0; l <= 100; l++) {
  28.                 if(!dp[i - 1][j][l].empty() or (i - 1 == 0 and j == 0 and l == 0)) {
  29.                     int a = cnt[v[i - 1]];
  30.                     for(int p = j + 1; l + p * a <= k; p++) {
  31.                         dp[i][p][l + p * a] = dp[i - 1][j][l];
  32.                         dp[i][p][l + p * a].push_back(p);
  33.                     }
  34.                 }
  35.             }
  36.         }
  37.     }
  38.     for(int i = 0; i <= 100; i++) {
  39.         if(!dp[v.size()][i][k].empty()) {
  40.             cout << "sim\n";
  41.             for(int j = 0; j < v.size(); j++) {
  42.                 cnt[v[j]] = dp[v.size()][i][k][j];
  43.             }
  44.             for(auto e : x) {
  45.                 cout << cnt[e] << " ";
  46.             }
  47.             cout << "\n";
  48.             return 0;
  49.         }
  50.     }
  51.     cout << "nao\n";
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement