Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int a[1111];int n,w,p,h;bool isok(int x){int sz=(w/x);int num=0;for(int i=1;i<=n;i++){num+=(a[i]+sz-1)/sz;}return num<=p*(h/x);}int main(){int t;scanf("%d",&t);while(t--){scanf("%d%d%d%d",&n,&p,&w,&h);for(int i=1;i<=n;i++)scanf("%d",&a[i]);int l=1,r=min(w,h);int ans;while(l<=r){int mid=l+r>>1;if(isok(mid)){l=mid+1;ans=mid;}else r=mid-1;