fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define FOR(i, a, b) for (int i = a; i <= b; ++i)
  4. #define FORD(i, a, b) for (int i = a; i >= b; --i)
  5. #define ll long long
  6.  
  7. using namespace std;
  8.  
  9. const int N = 2e7 + 5;
  10. int n, d, p, q, m;
  11. ll a[N];
  12.  
  13. void nhap() {
  14. cin >> n >> d;
  15. cin >> p >> q >> m;
  16. }
  17.  
  18. void giai() {
  19. FOR(i, 1, n) a[i] = (1ll * p % m * (i % m) % m) % m + q;
  20. FOR(i, n + 1, n + n) a[i] = a[i - n];
  21. FOR(i, 1, n + n) a[i] += i * 1ll * d;
  22.  
  23. deque <int> dq;
  24. ll ans = 9e18;
  25.  
  26. FOR(i, 1, n + n) {
  27. while (!dq.empty() && a[i] >= a[dq.back()]) dq.pop_back();
  28. while (!dq.empty() && dq.front() <= i - n) dq.pop_front();
  29. dq.push_back(i);
  30. if (i > n) ans = min(ans, a[dq.front()] - 1ll * (i - n) * d);
  31. }
  32.  
  33. cout << ans;
  34. }
  35.  
  36. int main() {
  37. ios_base::sync_with_stdio(0);
  38. cin.tie(0); cout.tie(0);
  39.  
  40. #define name "bubbletea"
  41.  
  42. if (fopen(name".inp", "r")) {
  43. freopen(name".inp", "r", stdin);
  44. freopen(name".out", "w", stdout);
  45. }
  46.  
  47. nhap();
  48. giai();
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
9000000000000000000