Guest User

Untitled

a guest
Apr 19th, 2016
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. /*
  2. ID: xildar91
  3. PROG: humble
  4. LANG: C++11
  5. */
  6. #include <bits/stdc++.h>
  7. using namespace std;
  8. typedef long long ll;
  9. typedef unsigned long long ull;
  10. typedef vector<int> vi;
  11. typedef vector<ll> vll;
  12. int inf_int=2e9;
  13. ll inf_ll=2e18;
  14. typedef pair<int,int> pii;
  15. #define pb push_back
  16. const double pi=3.1415926535898;
  17. #define dout if(debug) cout
  18. #define fi first
  19. #define se second
  20. #define sp setprecision
  21. #define sz size()
  22. #define x1 gfgs
  23. #define y1 asd
  24. #define rank asdsad
  25. bool debug=0;
  26. const int maxn=1e5+7;
  27.  
  28.  
  29. void solve()
  30. {
  31. ll k,n,m;
  32. cin >> n >> k >> m;
  33. int p[n],c[n];
  34. vector<pair<pii,int> > a;
  35. for(int i=0;i<n;i++)
  36. {
  37. cin >> p[i]>> c[i];
  38. a.pb({{c[i],0},i});
  39. a.pb({{p[i],1},i});
  40. }
  41. sort(a.begin(),a.end());
  42. map<int,bool> mp;
  43. int ans=0;
  44. set<pair<ll,int> > s;
  45. set<pair<ll,int> > s1;
  46. for(int i=0;i<a.sz;i++)
  47. {
  48. int in=a[i].se;
  49. if(a[i].fi.se==0)
  50. {
  51. if(k>0)
  52. {
  53. if( m >= a[i].fi.fi)
  54. {
  55. k--;
  56. mp[in]=true;
  57. m=m-a[i].fi.fi;
  58. s.insert({p[in]-c[in],in});
  59. ans++;
  60. }
  61.  
  62.  
  63. }
  64. else
  65. {
  66. if(s.begin()->fi + a[i].fi.fi<=m)
  67. {
  68. m=m-(s.begin()->fi + a[i].fi.fi);
  69. ans++;
  70. int in1=s.begin()->se;
  71. s1.insert({-p[in1],in1});
  72. mp[in]=true;
  73. s.erase(s.begin());
  74. s.insert({p[in]-c[in],in});
  75. }
  76. }
  77. }
  78. else
  79. {
  80. if(mp[in])
  81. {
  82. continue;
  83. }
  84. else if(m>=a[i].fi.fi)
  85. {
  86. m=m-a[i].fi.fi;
  87. ans++;
  88. mp[in]=true;
  89. }
  90. else if(-s1.begin()->fi>a[i].fi.fi)
  91. {
  92. m=m+(-s1.begin()->fi-a[i].fi.fi);
  93. s1.erase(s1.begin());
  94. s1.insert({-a[i].fi.fi,in});
  95. }
  96. }
  97. }
  98. cout << ans;
  99.  
  100.  
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. #define FILE "B-large"
  109. int main()
  110. {
  111.  
  112. // freopen("input.txt","r",stdin);
  113. // freopen("output.txt","w",stdout);
  114.  
  115. // freopen(FILE".in","r",stdin);
  116. // freopen(FILE".out","w",stdout);
  117. if(!debug)
  118. {
  119. ios_base::sync_with_stdio(0);
  120. cin.tie(0);
  121. cout.tie(0);
  122. }
  123. int t=1;
  124. while(t--)
  125. solve();
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment