제출 #896949

#제출 시각아이디문제언어결과실행 시간메모리
896949pccKitchen (BOI19_kitchen)C++17
100 / 100
30 ms824 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> const int mxn = 303; const int mxc = mxn*mxn; int N,M,K,arr[mxn],dp[mxc],brr[mxn]; int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>N>>M>>K; int sum = 0; for(int i = 0;i<N;i++)cin>>arr[i],sum += arr[i]; for(int i = 0;i<M;i++)cin>>brr[i]; for(int i = 0;i<N;i++){ if(arr[i]<K){ cout<<"Impossible"; return 0; } } memset(dp,-1,sizeof(dp)); dp[0] = 0; for(int i = 0;i<M;i++){ for(int j = mxc-1;j>=brr[i];j--){ if(dp[j-brr[i]] != -1)dp[j] = max(dp[j],dp[j-brr[i]]+min(brr[i],N)); } } for(int i = sum;i<mxc;i++){ if(dp[i]>=N*K){ cout<<i-sum; return 0; } } cout<<"Impossible"; return 0; }
#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...