# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
829159 | 1075508020060209tc | Kitchen (BOI19_kitchen) | C++14 | 91 ms | 92208 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("Ofast, no-stack-protector, unroll-loops")
#include <bits/stdc++.h>
using namespace std;
//#define int long long
int n;int m;int K;
int ar[510];
int br[510];
int dp[310][90010];
signed main()
{
cin>>n>>m>>K;
for(int i=1;i<=n;i++){
cin>>ar[i];
}
for(int i=1;i<=m;i++){
cin>>br[i];
}
int S=0;
for(int i=1;i<=n;i++){
if(ar[i]<K){cout<<"Impossible";return 0;}
S+=ar[i];
}
for(int i=0;i<m;i++){
for(int j=0;j<=90000;j++){
if(dp[i][j]==0&&i!=0){continue;}
dp[i+1][j]=max(dp[i+1][j],dp[i][j]);
int v=j+br[i+1];
if(v>90000){continue;}
dp[i+1][v]=max(dp[i+1][v],dp[i][j]+min(n,br[i+1]));
}
}
for(int i=S;i<=90000;i++){
if(dp[m][i]>=n*K){
cout<<i-S<<endl;return 0;
}
}
cout<<"Impossible";
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |