Submission #854887

#TimeUsernameProblemLanguageResultExecution timeMemory
854887aymanrsKitchen (BOI19_kitchen)C++14
100 / 100
19 ms788 KiB
#include<bits/stdc++.h>
using namespace std;
void solve(){
    int n, m, k;cin >> n >> m >> k;
    int a[n], b[m], s = 0;
    for(int i = 0;i < n;i++) {
        cin >> a[i];
        s += a[i];
        if(a[i] < k){
            cout << "Impossible\n";
            return;
        }
    }
    for(int i = 0;i < m;i++) cin >> b[i];
    const int ax = 300;
    int dp[n*ax+1];
    fill(dp, dp+n*ax+1, int(-1e6));
    dp[0] = 0;
    for(int i = 0;i < m;i++){
        for(int j = n*ax;j >= b[i];j--){
            dp[j] = max(dp[j], dp[j-b[i]]+min(n, b[i]));
        }
    }
    for(int h = 0;s <= n*ax;s++,h++){
        if(dp[s] >= n*k){
            cout << h << '\n';
            return;
        }
    }
    cout << "Impossible\n";
    
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    solve();
}
#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...