#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |