Submission #958146

#TimeUsernameProblemLanguageResultExecution timeMemory
958146ezzzayKitchen (BOI19_kitchen)C++14
0 / 100
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define ff first #define ss second const int N=500; int a[N]; int b[N]; signed main(){ int n,m,k; cin>>n>>m>>k; int sum=0; for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i]; } for(int i=0;i<m;i++)cin>>b[i]; for(int i=1;i<=n;i++){ if(a[i]<k){ cout<<"IMPOSSIBLE"; return 0; } } int ans=1e9; for(int i=0;i<(1<<m);i++){ int cur=0; int num=0; int cnt=0; for(int j=0;j<m;j++){ if(i & (1<<j)){ if(num+b[j]>=n){ cnt++; num=min(num,(num+b[j])%n); } else{ num+=b[j]; } cur+=b[j]; } } if(cur>=sum and cnt>=k)ans=min(ans,cur-sum); } if(ans==1e9){ cout<<"IMPOSSIBLE"; } else 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...