Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <set>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <iomanip>
  7. #include <vector>
  8. #include <queue>
  9. using namespace std;
  10. void stress();
  11. int main()
  12. {
  13. ios::sync_with_stdio(0);
  14. cin.tie(0);
  15. srand(time(0));
  16. stress();
  17. }
  18.  
  19. #define int long long
  20.  
  21.  
  22. void solveA()
  23. {
  24. set<pair<int,int>> s;
  25. int n;
  26. cin >> n;
  27. for (int i = 0; i<n; i++)
  28. {
  29. int x;
  30. cin >> x;
  31. if (x == 1)
  32. {
  33. int z;
  34. cin >> z;
  35. if (s.empty())
  36. {
  37. s.insert({1,z});
  38. }
  39. else
  40. {
  41. s.insert({prev(s.end())->first+1,z});
  42. }
  43. }
  44. else {
  45. int a, b;
  46. cin >> a >> b;
  47. for (int j = 0; j < b; j++) {
  48. auto it = s.lower_bound({a,-1});
  49. s.insert({prev(s.end())->first+1,it->second});
  50. s.erase(it);
  51. }
  52. }
  53. }
  54. for (auto it:s)
  55. cout << it.second << " ";
  56. }
  57. int x[302];
  58. int n,L;
  59. int dp[302][302];
  60. int f(int l, int r)
  61. {
  62. if (l+1 == r)
  63. return 0;
  64. if (dp[l][r]!=-1)
  65. return dp[l][r];
  66. int ans = 0;
  67. int len = x[r]-x[l];
  68.  
  69. for (int j = l+1; j<r; j++)
  70. {
  71. ans = max(ans,len*len + f(l,j) + f(j,r));
  72. }
  73. return dp[l][r] = ans;
  74. }
  75. void solveB()
  76. {
  77. cin >> n >> L;
  78. for (int i = 0; i<n; i++)
  79. cin >> x[i];
  80. sort(x,x+n);
  81. int l = 0, r = n-1;
  82. int ans = 0;
  83. int left = 0, right = L;
  84. while (l<=r)
  85. {
  86. int cutleft = x[l]-left;
  87. int cutright = right - x[r];
  88. ans+=L*L;
  89. if (cutleft<=cutright)
  90. {
  91. L-=cutleft;
  92. left = x[l];
  93. l++;
  94. }
  95. else
  96. {
  97. L -= cutright;
  98. right = x[r];
  99. r--;
  100. }
  101. }
  102. cout << ans;
  103. }
  104. void solveD()
  105. {
  106. int n;
  107. cin >> n;
  108. vector<int> mn(1001,1e9);
  109. vector<int> a(n);
  110. for (int i = 0; i<n; i++)
  111. cin >> a[i];
  112. sort(a.begin(),a.end());
  113. int m;
  114. cin >> m;
  115. for (int i = 0; i<m; i++)
  116. {
  117. int x,y;
  118. cin >> x >> y;
  119. mn[x] = min(mn[x],y);
  120. }
  121. int sum = 0;
  122. int cost = 1e9;
  123. int j = 1000;
  124. for (int i = n-1; i>=0; i--)
  125. {
  126. while (j>=a[i])
  127. cost = min(cost,mn[j]),j--;
  128. sum+=cost;
  129.  
  130. }
  131. cout << sum;
  132.  
  133. }
  134. void stress() {
  135. solveA();
  136. // solveB();
  137. // solveD();
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement