fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define pii pair<int,int>
  4. #define vi vector<int>
  5. #define vpi vector<pair<int,int>>
  6. #define vvi vector<vector<int>>
  7. #define mii map<int,int>
  8. #define msi map<string,int>
  9. #define mci map<char,int>
  10. #define mpi map<pair<int,int>,int>
  11. #define si set<int>
  12. #define smi multiset<int>
  13. #define spi set<pair<int,int>>
  14. #define smpi multiset<pair<int,int>>
  15. #define up upper_bound
  16. #define low lower_bound
  17. #define mod 1000000007
  18. #define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
  19. #define pb push_back
  20. #define pop pop_back()
  21. #define ff first
  22. #define ss second
  23. #define be begin()
  24. #define en end()
  25. #define all(x) x.begin(),x.end()
  26. #define rall(x) x.rbegin(),x.rend()
  27. #define ll long long
  28.  
  29. //========================================
  30. //Author: Muntazir Ali
  31. //Institution: IIIT JABALPUR
  32. //========================================
  33.  
  34. // REMINDER : All My Victories Belong to GOD And All My Losses Are Mine Alone.
  35.  
  36. int32_t main(){
  37. int t;
  38. cin >> t;
  39. while(t--){
  40. ll n,h;
  41. cin >> n >> h;
  42. ll d1=0,d2=0;
  43. for(int i=0; i<n; i++){
  44. ll s,d;
  45. cin >> s >> d;
  46. if(s==1) d1=max(d1,d);
  47. else d2=max(d2,d);
  48. }
  49. ll ans = LLONG_MAX;
  50. if(d1>0) ans=min(ans,(h+d1-1)/d1);
  51. if(d2>0) ans=min(ans,((h+d2-1)/d2)*2);
  52. if(d1>0 && d2>0) ans=min(ans,2+(max(0LL,h-d2)+d1-1)/d1);
  53. cout << ans << endl;
  54. }
  55. }
  56.  
  57.  
Success #stdin #stdout 0s 5316KB
stdin
3
3 10
1 2
2 3
2 9
4 29
1 7
2 26
2 40
1 15
4 22
1 1
2 7
1 3
2 3
stdout
3
2
7