fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int MOD = 1e9 + 7;
  5. #define ll long long int
  6. #define pii pair<int, int>
  7. #define pll pair<ll, ll>
  8. #define pb push_back
  9. #define eb emplace_back
  10. #define in insert
  11. #define ff first
  12. #define ss second
  13. #define vi vector<int>
  14. #define vl vector<ll>
  15. #define vpii vector<pii>
  16. #define vpll vector<pll>
  17. #define si set<int>
  18. #define mpii map<int, int>
  19. #define prq priority_queue
  20. #define sz(s) (int) s.size()
  21. #define pf(a) printf("%d ",a)
  22. #define si1(a) scanf("%d",&a)
  23. #define si2(a,b) scanf("%d%d",&a,&b)
  24. #define si3(a,b,c) scanf("%d%d%d",&a,&b,&c)
  25. //#define scan(v) for(int i = 0; i<n; i++){int x;cin>>x;v.pb(x);}
  26. #define pi 2 * acos (0.0)
  27. #define inf 1e9
  28. #define co cout
  29. #define en '\n'
  30. #define re return
  31. #define con continue
  32. #define dbg cout<<"___________ok____________"<<endl;
  33. #define yes() printf("YES\n")
  34. #define no() puts("NO\n")
  35. #define FOR(i, j, k) for(int i=(j); i<(k); i++)
  36. #define REV(i, j, k) for(int i=(n-1); i>=k; i--)
  37. #define all(v) v.begin(), v.end()
  38. #define unq(a) sort(all(a)), a.erase(unique(all(a)),a.end())
  39. #define rnd(a, b) ((((rand()<<15)^rand())%((b)-(a) + 1))+(a))
  40. #define FAST_IO ios_base::sync_with_stdio(false),cin.tie(NULL)
  41. #define mem(x, y) memset(x, y, sizeof(x))
  42. #define prn(v) for(auto x: v)cout<<x<<" ";
  43. const double EPS = 1e-9;
  44. const int MXX = 2e5 + 5;
  45.  
  46.  
  47. int main ()
  48. {
  49. int tc;
  50. cin>>tc;
  51. while(tc--)
  52. {
  53. ll p, s, f, cnts, cntw, w;
  54. cin>>p>>f;
  55. cin>>cnts>>cntw;
  56. cin>>s>>w;
  57. ll res = 0, res2 = 0;
  58. FOR(i, 0, cnts + 1)
  59. {
  60. ll nisi = i*s;
  61. ll lo = 0, hi = cntw, mid, ans = -1;
  62. while(lo<=hi)
  63. {
  64. mid = (lo + hi)>>1;
  65. if(mid*w + nisi<=p+f)
  66. {
  67. ans = mid;
  68. lo = mid + 1;
  69. }
  70. else hi = mid - 1;
  71. }
  72. if(ans!=-1)res = max(res, ans+i);
  73. }
  74. FOR(i, 0, cntw + 1)
  75. {
  76. ll nisi = i*w;
  77. ll lo = 0, hi = cnts, mid, ans = -1;
  78. while(lo<=hi)
  79. {
  80. mid = (lo + hi)>>1;
  81. if(mid*s + nisi<=p+f)
  82. {
  83. ans = mid;
  84. lo = mid + 1;
  85. }
  86. else hi = mid - 1;
  87. }
  88. if(ans!=-1)res2 = max(res2, ans+i);
  89. }
  90. co<<max(res, res2)<<en;
  91. }
  92. return 0;
  93. }
Success #stdin #stdout 0s 4260KB
stdin
3
33 27
6 10
5 6
100 200
10 10
5 5
1 19
1 3
19 5
stdout
11
20
3