Advertisement
Guest User

Untitled

a guest
May 27th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. #include <map>
  4. #include <vector>
  5. #include <string>
  6. #include <algorithm>
  7. #include <iomanip>
  8. #include <math.h>
  9. #include <limits.h>
  10. using namespace std;
  11. typedef long long int ll;
  12. typedef pair<int, int> pii;
  13. typedef pair<ll, ll> pll;
  14. typedef vector<int> vint;
  15.  
  16.  
  17. int n, q;
  18. vint degrees;
  19. vector<bool> can;
  20.  
  21. void add(int x) {
  22. //cerr << "add " << x << endl;
  23. vint nvec = degrees;
  24. for (int i = 0; i <= n; i++) {
  25. if (degrees[i] && i + x <= n) {
  26. nvec[i + x]++;
  27. can[i + x] = true;
  28. }
  29. }
  30.  
  31. /*cerr << "nvec: ";
  32. for (auto it : nvec)
  33. cerr << it << " ";
  34. cerr << endl;*/
  35.  
  36. degrees = nvec;
  37. }
  38.  
  39. void remove(int x) {
  40. //cerr << "remove " << x << endl;
  41. vint nvec = degrees;
  42. for (int i = 0; i <= n; i++) {
  43. if (nvec[i] && i + x <= n)
  44. nvec[i + x]--;
  45. }
  46.  
  47. /*cerr << "nvec: ";
  48. for (auto it : nvec)
  49. cerr << it << " ";
  50. cerr << endl;*/
  51.  
  52. degrees = nvec;
  53. }
  54.  
  55. int main() {
  56. ios_base::sync_with_stdio(0);
  57. cin.tie(0);
  58.  
  59. cin >> n >> q;
  60. vector<pii> vec;
  61. for (int i = 0; i < q; i++) {
  62. int l, r, x;
  63. cin >> l >> r >> x;
  64. l--; r--;
  65. vec.push_back({l, x});
  66. vec.push_back({r + 1, -x});
  67. }
  68. sort(vec.begin(), vec.end());
  69. degrees.resize(n + 1);
  70. can.resize(n + 1);
  71. degrees[0] = 1;
  72.  
  73. for (auto it : vec) {
  74. if (it.second < 0)
  75. remove(-it.second);
  76. else
  77. add(it.second);
  78. }
  79.  
  80. vint res;
  81. for (int i = 1; i <= n; i++) {
  82. if (can[i]) {
  83. res.push_back(i);
  84. }
  85. }
  86.  
  87. cout << res.size() << endl;
  88. for (auto it : res)
  89. cout << it << " ";
  90. cout << endl;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement