Submission #1370627

#TimeUsernameProblemLanguageResultExecution timeMemory
1370627eradaxKitchen (BOI19_kitchen)C++20
100 / 100
11 ms580 KiB
#include<bits/stdc++.h>
using namespace std;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int n,m,k;cin>>n>>m>>k;
    vector<int> a(n),b(m);
    for(int&i:a)cin>>i;
    for(int&i:b)cin>>i;

    for(int i:a)if(i<k){
        cout<<"Impossible\n";
        return 0;
    }

    vector<int> dp((n+1)*300+1,-1e9);dp[0]=0;
    for(int i:b){
        for (int j=(n+1)*300-i;j>=0;j--){
            dp[j+i]=max(dp[j+i],dp[j]+min(i,n));
        }
    }

    int s=accumulate(begin(a),end(a),0);
    int v=s;
    while(v<ssize(dp)&&dp[v]<n*k)v++;
    if(v==ssize(dp)){
        cout<<"Impossible\n";
    } else {
        cout<<v-s<<'\n';
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...