제출 #796339

#제출 시각아이디문제언어결과실행 시간메모리
796339JohannCookies (JOI23_cookies)C++14
0 / 100
1 ms320 KiB
#include "bits/stdc++.h"
using namespace std;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()

int N, M;
vpii A;
vi B;
vi dp;
vi used;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin >> N;
    A.resize(N);
    for (int i = 0; i < N; ++i)
        cin >> A[i].first, A[i].second = i;
    cin >> M;
    B.resize(M);
    for (int i = 0; i < M; ++i)
        cin >> B[i];

    // sort(all(A));
    dp.assign(N + 1, INT_MAX), used.resize(N + 1);
    dp[0] = 0;
    for (int i = 1; i < sz(dp); ++i)
        for (int b = sz(B) - 1; b >= 0; --b)
            if (i - B[b] >= 0 && dp[i] > dp[i - B[b]] + 1)
                dp[i] = dp[i - B[b]] + 1, used[i] = b;

    if (dp[N] < 0)
    {
        cout << -1 << "\n";
    }
    else
    {
        int i = N;
        cout << dp[i] << "\n";
        while (i > 0)
        {
            int b = used[i];
            cout << B[b];
            for (int j = 0; j < B[b]; ++j)
                cout << " " << i--;
            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...