제출 #1243848

#제출 시각아이디문제언어결과실행 시간메모리
1243848chikien2009Kitchen (BOI19_kitchen)C++20
100 / 100
20 ms1036 KiB
#include <bits/stdc++.h>

using namespace std;

void setup()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int n, m, k, a, sum, f[300 * 300 + 1];

int main()
{
    setup();

    cin >> n >> m >> k;
    for (int i = 0; i < n; ++i)
    {
        cin >> a;
        sum += a;
        if (a < k)
        {
            cout << "Impossible";
            return 0;
        }
    }
    while (m--)
    {
        cin >> a;
        for (int i = 300 * 300; i >= 0; --i)
        {
            if (a <= i && (a == i || f[i - a] > 0))
            {
                f[i] = max(f[i], f[i - a] + min(n, a));
            }
        }
    }
    for (int i = sum; i <= 300 * 300; ++i)
    {
        if (f[i] >= n * k)
        {
            cout << i - sum;
            return 0;
        }
    }
    cout << "Impossible";
    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...