fork download
  1. /////////////////////////////////////////////////////////////////////////
  2. // ------------------------------------------------------------------- //
  3. // | Author: Fananhkhoi | Luong Van Chanh High School for the gifted | //
  4. // ------------------------------------------------------------------- //
  5. /////////////////////////////////////////////////////////////////////////
  6.  
  7.  
  8. /* -------------------[ TALK LESS & DO MORE ]------------------- */
  9.  
  10.  
  11. // #pragma GCC target("popcnt,lzcnt,bmi,bmi2,abm")
  12.  
  13. #include <bits/stdc++.h>
  14. #include<ext/pb_ds/assoc_container.hpp>
  15. #include<ext/pb_ds/tree_policy.hpp>
  16. using namespace std;
  17. using namespace __gnu_pbds;
  18.  
  19. #define getBit(x, k) (((x) >> (k)) & 1)
  20. #define MASK(i) (1LL << (i))
  21. #define int long long
  22. //#define ll long long
  23. #define MOD 1000000007
  24. #define el "\n"
  25. #define vi vector<int>
  26. #define pii pair<int,int>
  27. #define vii vector<pii>
  28. #define FOU(i, l, r) for (int i = l; i <= r; i ++)
  29. #define FOD(i, r, l) for (int i = r; i >= l; i --)
  30. #define trav(a, x) for (auto &a : x )
  31. #define rep(i, a, b) for (int i = a; i < (b); i ++)
  32. #define gcd __gcd
  33. #define fi first
  34. #define se second
  35. #define MP make_pair
  36. #define pb push_back
  37. #define pf push_front
  38. #define all(v) v.begin(), v.end()
  39. #define rev(v) reverse(all(v))
  40. #define srt(v) sort(all(v))
  41. #define grtsrt(v) sort(all(v), greater<int>())
  42. #define sz(x) (int) (x).size()
  43. #define maxHeap priority_queue<int>
  44. #define minHeap priority_queue<int, vi, greater<int>>
  45. #define Fix(a, b) cout << fixed << setprecision((b)) << (a)
  46.  
  47. int dx[] = {};
  48. int dy[] = {};
  49.  
  50. template<class KHOI, class ANH> bool maximize(KHOI &x, ANH y){
  51. if(x < y){
  52. x = y;
  53. return true;
  54. }
  55. else return false;
  56. }
  57.  
  58. template<class KHOI, class ANH> bool minimize(KHOI &x, ANH y){
  59. if(x > y){
  60. x = y;
  61. return true;
  62. }
  63. else return false;
  64. }
  65.  
  66. inline int max(int a, int b){
  67. return (a > b) ? a : b;
  68. }
  69.  
  70. inline int min(int a, int b){
  71. return (a < b) ? a : b;
  72. }
  73.  
  74.  
  75.  
  76.  
  77. /* --------------------[ MAIN CODE ]--------------------- */
  78.  
  79. const int MaxN = 5e6 + 100;
  80. const int oo = 2e18;
  81.  
  82. int n, x, p, q, m;
  83. int a[MaxN];
  84. int f[MaxN];
  85. int v[MaxN];
  86.  
  87. void inp(){
  88. cin >> n >> x;
  89. cin >> p >> q >> m;
  90. for (int i = 1; i <= n; i ++){
  91. a[i] = ((p * i) % m) + q;
  92. }
  93. }
  94.  
  95. void sol(){
  96. int k = -oo;
  97. for (int i = 1; i <= n; i ++){
  98. int tmp = a[i] + i * x;
  99. maximize(k, tmp);
  100. }
  101. f[1] = k;
  102. int res = f[1];
  103. for (int i = 2; i <= n; i ++){
  104. maximize(f[i], max({a[i] + x, a[i - 1] + n * x, f[i - 1] - x}));
  105. minimize(res, f[i]);
  106. }
  107. cout << res;
  108. }
  109.  
  110. int32_t main()
  111. {
  112. ios_base::sync_with_stdio(false);
  113. cin.tie(NULL);
  114.  
  115. // freopen("EXERCISE.INP", "r", stdin);
  116. // freopen("EXERCISE.OUT", "w", stdout);
  117.  
  118. int t = 1;
  119. bool multitest = 0;
  120. if (multitest){
  121. cin >> t;
  122. }
  123. while(t--){
  124. inp();
  125. sol();
  126. }
  127. return 0;
  128. }
Success #stdin #stdout 0.01s 5628KB
stdin
Standard input is empty
stdout
-2000000000000000000