Submission #1220080

#TimeUsernameProblemLanguageResultExecution timeMemory
1220080akqxolotlKitchen (BOI19_kitchen)C++20
31 / 100
386 ms424 KiB
#include <bits/stdc++.h> using namespace std; #define int long long typedef pair<int,int> pii; #define fi first #define se second #define debug(x) cerr<<#x<<" is "<<x<<endl; int dp[100005]; signed main(){ int n,m,k;cin>>n>>m>>k; int a[n],b[m]; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(int i=0;i<m;i++){ cin>>b[i]; } int ans=LLONG_MAX; for(int bm=0;bm<(1<<m);bm++){ bool f=1; int tk[n]; memset(tk,0,sizeof(tk)); int ta[n]; memset(ta,0,sizeof(ta)); int e=0; int cd=0; for(int i=0;i<m;i++){ if((1<<i)&bm){ int c=b[i]; int pcd=cd; do{ if(ta[cd]!=a[cd]){ tk[cd]++; ta[cd]++; c--; } cd++; cd%=n; }while(cd!=pcd&&c>0); e+=c; } } int s=0; for(int i=0;i<n;i++){ s+=a[i]-ta[i]; if(tk[i]<k)f=0; } if(s>e)f=0; if(f){ //debug(s)debug(e) //debug(bm) ans=min(ans,e-s); } } if(ans==LLONG_MAX)cout<<"Impossible\n"; else cout<<ans<<'\n'; }
#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...