Submission #1220205

#TimeUsernameProblemLanguageResultExecution timeMemory
1220205Younis_DwaiCookies (JOI23_cookies)C++20
6 / 100
1 ms328 KiB
#pragma GCC optimize("Ofast,O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include<bits/stdc++.h>
#define int long long
#define F first
#define S second
#define pb push_back
#define popp pop_back
#define in insert
#define endl "\n"
#define mid (l+r)/2
using namespace std;
const int N=505;
int n,A[N],m,b[N],dp[505];
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>A[i];
    cin>>m;
    for(int i=1;i<=m;i++) cin>>b[i];
    dp[0]=0;
    for(int i=1;i<=n;i++) dp[i]=1e9;
    for(int i=1;i<=m;i++){
        for(int j=0;j+b[i]<=n;j++){
            dp[j+b[i]]=min(dp[j+b[i]],dp[j]+1);
        }
    }
    //for(int i=0;i<=7;i++) cout<<" # "<<i<<' '<<dp[i]<<endl;
    if(dp[n]==1e9) cout<<-1<<endl;
    else{
       cout<<dp[n]<<endl;
       int sz=n,idb=0,used=0;
       while(sz!=0){
             for(int i=1;i<=m;i++){
                 if(sz-b[i]>=0 && dp[sz-b[i]]+1==dp[sz]){
                    sz-=b[i];
                    ++idb;
                    cout<<b[i]<<' ';
                    for(int j=1;j<=b[i];j++){
                        cout<<++used<<' ';
                    }
                    cout<<endl;
                    break ;
                 }
             }
       }

    }
    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...