Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define _USE_MATH_DEFINES
  3. #include <iostream>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <set>
  7. #include <unordered_set>
  8. using namespace std;
  9. #define pb push_back
  10. #define eb emplace_back
  11. #define all(a) a.begin(), a.end()
  12. #define rall(a) a.rbegin(), a.rend()
  13. int logs[100001];
  14. int sparce[17][1000001];
  15.  
  16. int askmin(int l, int r) {
  17.     int level = logs[r - l + 1];
  18.     return min(sparce[level][l], sparce[level][r - (1 << level) + 1]);
  19. }
  20.  
  21. void solve() {
  22.     //freopen("floyd.in", "r", stdin);
  23.     //freopen("floyd.out", "w", stdout);
  24.     int n, m, a, u, v;
  25.     cin >> n >> m >> a >> u >> v;
  26.     logs[0] = logs[1] = 0;
  27.     for (int i = 2; i <= 100000; i++) {
  28.         logs[i] = logs[i / 2] + 1;
  29.     }
  30.     sparce[0][0] = a;
  31.     for (int i = 1; i < n; i++) {
  32.         a = (23 * a + 21563) % 16714589;
  33.         sparce[0][i] = a;
  34.     }
  35.     for (int level = 1; (1 << level) <= n; level++) {
  36.         for (int i = 0; i + (1 << level) <= n; i++) {
  37.             sparce[level][i] = min(sparce[level - 1][i], sparce[level - 1][i + (1 << (level - 1))]);
  38.         }
  39.     }
  40.     int ans = askmin(min(u, v), max(u, v));
  41.     cout << u << " " << v << " " << ans << "\n";
  42.     for (int i = 1; i < m; i++) {
  43.         u = ((17 * u + 751 + ans + 2 *i) % n) + 1;
  44.         v = ((13 * v + 593 + ans + 5 * i) % n) + 1;
  45.         ans = askmin(min(u, v), max(u, v));
  46.         cout << u << " " << v << " " << ans << "\n";
  47.     }
  48. //  cout << u << " " << v << " " << ans;
  49. }
  50.  
  51. signed main() {
  52.  
  53.     solve();
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement