#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll n,m,k,ok=0,sum=0,gy=0;
cin>>n>>m>>k;
vector<ll> v(n),v1(m);
for(ll i=0;i<n;i++)
{
cin>>v[i];
if(v[i]<k)
{
cout<<"Impossible\n";
return 0;
}
gy+=v[i];
}
for(ll i=0;i<m;i++)
{
cin>>v1[i];
sum+=v1[i];
}
if(k>v1.size() || gy>sum)
{
cout<<"Impossible\n";
return 0;
}
else
{
ll ans=0;
vector<ll> dp(sum+1,-100000);
dp[0]=0;
for(ll i=0;i<m;i++)
{
for(ll j=sum;j>=v1[i];j--)
{
if(dp[j-v1[i]]!=-100000)
{
dp[j]=max(dp[j],dp[j-v1[i]]+min(v1[i],n));
}
}
}
for(ll i=gy;i<=sum;i++)
{
if(dp[i]>=n*k)
{
cout<<i-gy<<"\n";
return 0;
}
}
cout<<"Impossible\n";
}
return 0;
}
| # | 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... |