Advertisement
OMEGAHEAD_MonkoX

Untitled

Apr 20th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. 
  2. #include <iostream>
  3. #include <string>
  4. #include <sstream>
  5. #include <algorithm>
  6. #include <vector>
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <fstream>
  10. #include <stack>
  11. #include <map>
  12. #include <cstring>
  13. #include <cmath>
  14. #include <set>
  15. #include <iterator>
  16. #include <cmath>
  17. #include <locale>
  18. #include <queue>
  19. #include <deque>
  20. #include <stack>
  21.  
  22.  
  23. using namespace std;
  24.  
  25.  
  26.  
  27. const int MOD = 1e6 + 7;
  28.  
  29.  
  30. void VIVOD(vector<vector<int> > vec2, int n, int m)
  31. {
  32. for (auto i = 0; i < n; ++i)
  33. {
  34. for (auto j = 0; j < m; ++j)
  35. {
  36. cout << vec2[i][j] << " ";
  37. }
  38. cout << endl;
  39. }
  40. }
  41.  
  42. int m(char c1, char c2)
  43. {
  44. if (c1 == c2)
  45. return 0;
  46. return 1;
  47. }
  48.  
  49.  
  50. int main()
  51. {
  52.  
  53. int a1, k, b, m, n, a2, o = 1, w = 0, q = 0;
  54. cin >> n >> a1 >> k >> b >> m;
  55. vector<int> vec(n + 1, 0), vec2(n + 1, 0), ans, a(n + 1), vec3(n + 1, 0);
  56. vec2[0] = -1;
  57. vec[0] = -1;
  58. a[0] = a1;
  59. for (auto i = 1; i < n; ++i)
  60. {
  61. a[i] = (k * a[i - 1] + b) % m;
  62. }
  63. for (auto i = 1; i <= n; i++)
  64. {
  65. vec[i] = MOD;
  66. }
  67. for (auto i = 0; i < n; i++)
  68. {
  69. auto j = lower_bound(vec.begin(), vec.end(), a[i]);
  70. q = j - vec.begin();
  71. if (vec[q - 1] < a[i] && a[i] < vec[q])
  72. {
  73. vec[q] = a[i];
  74. vec2[q] = i;
  75. vec3[i] = vec2[q - 1];
  76. w = max(w, q);
  77. o = vec2[w];
  78. }
  79. }
  80. while (o != -1)
  81. {
  82. ans.push_back(a[o]);
  83. o = vec3[o];
  84. }
  85. for (int i = ans.size() - 1; i >= 0; i--)
  86. {
  87. cout << ans[i] << ' ';
  88. }
  89. }
  90. /*
  91. EXPONENTIAL
  92. POLYNOMIAL
  93. 41 83 67 35 71 43
  94. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement