Submission #1193335

#TimeUsernameProblemLanguageResultExecution timeMemory
1193335prideliqueeeKitchen (BOI19_kitchen)C++20
21 / 100
93 ms135496 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,m,k;
    cin>>n>>m>>k;
    int a[n+1];
    int suma=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        suma+=a[i];
        if(a[i]<k)
        {
            cout<<"Impossible";
            return 0;
        }
    }
    int sumb=0;
    int b[m+1];
    for(int i=1;i<=m;i++)
    {
        cin>>b[i];
        sumb+=b[i];
    }
    int dp[m+1][sumb+1];
    int ans=LLONG_MAX;
    memset(dp,0,sizeof dp);
    for(int i=1;i<=m;i++)
    {
        for(int j=sumb;j>=0;j--)
        {
            dp[i][j]=dp[i-1][j];
            if(j>=b[i])
            {
                dp[i][j]=max(dp[i][j],dp[i-1][j-b[i]]+min(n,b[i]));
            }
            if(j>=suma&&dp[i][j]>=n*k)
            ans=min(ans,j-suma);
        }
    }
    if(ans==LLONG_MAX)
    cout<<"Impossible";
    else
    cout<<ans;
}
#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...