Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma GCC optimize("Ofast")
- #pragma GCC target("avx2")
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <cmath>
- #include <stack>
- #include <iomanip>
- #include <fstream>
- #include <string>
- #include <set>
- #include <deque>
- #include <queue>
- #include <map>
- #include <bitset>
- #include <random>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- typedef string str;
- #define endl "\n"
- #define sqrt sqrtl
- #define all(a) a.begin(), a.end();
- //#define pow bin_pow
- const ll inf = 1e9 + 13;
- long double eps = 1e-6;
- const ll maxsz = 1e6 + 5;
- ll mod = 16714589;
- signed main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- ios_base::sync_with_stdio(0);
- cin.tie(NULL);
- cout.tie(NULL);
- ll n, m, i, j;
- cin >> n >> m;
- n++;
- vector<ll> a(n);
- cin >> a[1];
- for (i = 1; i < n - 1; i++) {
- a[i + 1] = (23 * a[i] + 21563) % mod;
- }
- vector<ll> logs(n + 1);
- logs[1] = 0;
- for (ll i = 2; i <= n; i++) {
- logs[i] = logs[i / 2] + 1;
- }
- vector<vector<ll>> spt(logs[n] + 1, vector<ll>(n));
- for (ll i = 0; i < n; i++) {
- spt[0][i] = a[i];
- }
- for (ll lv = 1; (1 << lv) <= n; lv++) {
- for (ll i = 0; i + (1 << lv) <= n; i++) {
- spt[lv][i] = min(spt[lv - 1][i], spt[lv - 1][i + (1 << (lv - 1))]);
- }
- }
- ll u, v, ul, vl;
- cin >> u >> v;
- ll ans;
- ll lv = logs[abs(u - v) + 1];
- ans = min(spt[lv][min(u, v)], spt[lv][max(u, v) - (1 << lv) + 1]);
- for (i = 2; i <= m; i++) {
- ul = u;
- vl = v;
- u = ((17 * ul + 751 + ans + 2 * (i - 1)) % (n - 1)) + 1;
- v = ((13 * vl + 593 + ans + 5 * (i - 1)) % (n - 1)) + 1;
- lv = logs[abs(u - v) + 1];
- ans = min(spt[lv][min(u, v)], spt[lv][max(u, v) - (1 << lv) + 1]);
- }
- cout << u << " " << v << " " << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement