Submission #1161501

#TimeUsernameProblemLanguageResultExecution timeMemory
1161501the_ZHERKitchen (BOI19_kitchen)C++20
9 / 100
6 ms328 KiB
#include <bits/stdc++.h> #define boost ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define int long long using namespace std; const int inf=1e18; const int N=5e5+100; const int N1=5e5; const int N2=1e6; const int mod=1e9+7; const int k1=447; struct edge{ int x,w; }; struct edge1{ int x,g,d; }; vector<int>v; vector<int>v1; signed main(){ boost; int n,m,k; cin>>n>>m>>k; v.push_back(0); int ok=0; for(int i=0;i<n;i++){ int x; cin>>x; if(x<k){ ok=1; } v.push_back(x); } v1.push_back(0); for(int i=1;i<=m;i++){ int x; cin>>x; v1.push_back(x); } if(ok==1||k>m){ cout<<"Impossible"; return 0; } int ans=inf; sort(v.begin(),v.end()); sort(v1.begin(),v1.end()); for(int i=0;i<(1<<m);i++){ vector<int>v2; int cnt=0; int sum=0; for(int j=0;j<m;j++){ if(1&(i>>j)){ cnt++; sum+=v1[j+1]; v2.push_back(v1[j+1]); } } if(cnt<k){ v2.clear(); continue; } int ok=0; for(int j=1;j<=n;j++){ cnt=0; for(int l=v2.size()-1;l>=0;l--){ if(v2[l]==0){ ok=1; break; } v2[l]--; cnt++; if(cnt==k){ break; } } if(cnt!=k){ ok=1; } if(ok==1){ break; } sort(v2.begin(),v2.end()); } int sum1=0; for(int j=1;j<=n;j++){ sum1+=v[j]-k; } sum-=sum1+(k*n); if(sum>=0){ ans=min(ans,sum); } v2.clear(); } if(ans==inf){ cout<<"Impossible"; return 0; } 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...