제출 #928763

#제출 시각아이디문제언어결과실행 시간메모리
928763UmairAhmadMirzaKitchen (BOI19_kitchen)C++17
31 / 100
2 ms444 KiB
#include <bits/stdc++.h>
using namespace std;
int const N=305;
int const inf=1e9;
bool dp[N*N];
int n,m,k;
int main(){
  cin>>n>>m>>k;
  int arr[n];
  int total=0;
  for(int i=0;i<n;i++){
    cin>>arr[i];
    total+=arr[i];
    if(arr[i]<k){
      cout<<"Impossible"<<endl;
      return 0;
    }
  }
  int ans=inf;
  int chef[m];
  for(int i=0;i<m;i++)
    cin>>chef[i];
  for(int mask=1;mask<(1<<m);mask++){
    int t_sum=0;
    int uni_sum=0;
    for(int i=0;i<m;i++)
      if((1<<i)&mask){
        t_sum+=chef[i];
        uni_sum+=min(n,chef[i]);
      }
    if((k*n)<=uni_sum && total<=t_sum)
      ans=min(ans,t_sum-total);
  }
  if(ans==inf)
    cout<<"Impossible"<<endl;
  else
    cout<<ans<<endl;
  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...