Submission #1206114

#TimeUsernameProblemLanguageResultExecution timeMemory
1206114pinbuKitchen (BOI19_kitchen)C++20
21 / 100
14 ms584 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 100005;

int n, m, k;
int dp[N];
 
int main() {
    cin >> n >> m >> k;
    int suma = 0;
    for (int i = 0, ai; i < n; i++) {
        cin >> ai;
        if (ai < k) {
        	cout << "Impossible";
        	return 0;
        }
        suma += ai;
    }
    int sumb = 0;
    dp[0] = 0;
    for (int i = 0, bi; i < m; i++) {
        cin >> bi;
        sumb += bi;
        for (int j = 90000; j >= bi; j--) {
        	dp[j] = max(dp[j], dp[j - bi] + min(bi, n)); // check ediorial!
        }
    }
 
    for (int i = suma; i <= 90000; i++) {
        if (dp[i] < n * k) {
        	continue;
        }
        cout << i - suma;
        return 0;
    }
    cout << "Impossible\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...