Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Слава Україні, Героям слава 🇺🇦
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 107;
- vector<int> dp[N][N][N];
- int cnt[N];
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- int n, k;
- cin >> n >> k;
- vector<int> v(n);
- for(int i = 0; i < n; i++) {
- cin >> v[i];
- cnt[v[i]]++;
- }
- auto x = v;
- sort(v.begin(), v.end());
- v.erase(unique(v.begin(), v.end()), v.end());
- for(int i = 1; i <= v.size(); i++) {
- for(int j = 0; j <= 100; j++) {
- for(int l = 0; l <= 100; l++) {
- if(!dp[i - 1][j][l].empty() or (i - 1 == 0 and j == 0 and l == 0)) {
- int a = cnt[v[i - 1]];
- for(int p = j + 1; l + p * a <= k; p++) {
- dp[i][p][l + p * a] = dp[i - 1][j][l];
- dp[i][p][l + p * a].push_back(p);
- }
- }
- }
- }
- }
- for(int i = 0; i <= 100; i++) {
- if(!dp[v.size()][i][k].empty()) {
- cout << "sim\n";
- for(int j = 0; j < v.size(); j++) {
- cnt[v[j]] = dp[v.size()][i][k][j];
- }
- for(auto e : x) {
- cout << cnt[e] << " ";
- }
- cout << "\n";
- return 0;
- }
- }
- cout << "nao\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement