Submission #1226862

#TimeUsernameProblemLanguageResultExecution timeMemory
1226862AvianshCookies (JOI23_cookies)C++20
6 / 100
1 ms1096 KiB
#include <bits/stdc++.h>

using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    int a[n];
    for(int &i : a){
        cin >> i;
        assert(i==1);
    }
    int m;
    cin >> m;
    int b[m];
    for(int &i : b){
        cin >> i;
    }
    vector<int>dp[n+1];
    bool val[n+1];
    fill(val,val+n+1,0);
    val[0]=1;
    for(int i = 1;i<=n;i++){
        for(int k : b){
            if(i-k>=0){
                if(val[i-k]){
                    if(val[i]){
                        if(dp[i-k].size()+1<dp[i].size()){
                            dp[i].clear();
                            for(int z : dp[i-k]){
                                dp[i].push_back(z);
                            }
                            dp[i].push_back(k);
                        }
                    }
                    else{
                        val[i]=1;
                        for(int z : dp[i-k]){
                            dp[i].push_back(z);
                        }
                        dp[i].push_back(k);
                    }
                }
            }
        }
    }
    if(!val[n]){
        cout << -1;
        return 0;
    }
    cout << dp[n].size() << "\n";
    int curr = 1;
    for(int i : dp[n]){
        cout << i << " ";
        for(int j = 0;j<i;j++){
            cout << curr++ << " ";
        }
        cout << "\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...