fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define lli long long int
  4. #define pb push_back
  5. #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  6. #define endl "\n"
  7. #define yoi cout<<"yo"<<endl;
  8. #define debug(x) cerr << #x << " is " << x << endl;
  9. #define all(x) x.begin(),x.end()
  10. const lli inf=1e18;
  11. const int mod=1e9+7;
  12. int main(){
  13. IOS;
  14. int t;
  15. cin>>t;
  16. while(t--){
  17. lli n,i;
  18. cin>>n;
  19. lli c[n];
  20. for(i=0;i<n;i++)
  21. cin>>c[i];
  22. sort(c,c+n,greater<lli>());
  23. lli prefix[n+1];
  24. prefix[0]=0;
  25. for(i=0;i<n;i++){
  26. prefix[i+1]=prefix[i]+c[i];
  27. }
  28. lli x,a,y,b,k;
  29. cin>>x>>a>>y>>b>>k;
  30. lli lcm=(a*b)/__gcd(a,b);
  31. lli start=0,last=n;
  32. lli ans=-1;
  33. while(start<=last){
  34. lli middle=(start+last)/2;
  35. lli common=middle/lcm;
  36. common=(prefix[common]*(x+y))/100;
  37. lli acontri=(middle/a)-(middle/lcm);
  38. lli bcontri=(middle/b)-(middle/lcm);
  39. lli aa=(prefix[(middle/lcm)+acontri]-prefix[middle/lcm])*x/100;
  40. lli bb=(prefix[(middle/lcm)+acontri+bcontri]-prefix[middle/lcm+acontri])*y/100;
  41. lli aaa=(prefix[(middle/lcm)+acontri+bcontri]-prefix[middle/lcm+bcontri])*x/100;
  42. lli bbb=(prefix[(middle/lcm)+bcontri]-prefix[middle/lcm])*y/100;
  43. lli maxi=max(aa+bb,aaa+bbb);
  44. if(maxi+common>=k){
  45. ans=middle;
  46. last=middle-1;
  47. }
  48. else{
  49. start=middle+1;
  50. }
  51. }
  52. cout<<ans<<endl;
  53. }
  54. }
  55.  
Runtime error #stdin #stdout 0s 4504KB
stdin
Standard input is empty
stdout
Standard output is empty