Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int M = 3e7 + 228;
- int massive[M];
- int n, k;
- int nth(int k) {
- int l = 0, r = n - 1;
- for(;;) {
- if (r <= l + 1) {
- if (r == l + 1 && massive[r] < massive[l])
- swap(massive[l], massive[r]);
- return massive[k];
- }
- int m = (l + r) / 2;
- swap(massive[m], massive[l + 1]);
- if (massive[l] > massive[r])
- swap(massive[l], massive[r]);
- if (massive[l + 1] > massive[r])
- swap(massive[l + 1], massive[r]);
- if (massive[l] > massive[l + 1])
- swap(massive[l], massive[l + 1]);
- int i = l + 1;
- int j = r;
- int cur = massive[l + 1];
- for(;;) {
- while(massive[++i] < cur) ;
- while(massive[--j] > cur) ;
- if (i > j)
- break;
- swap(massive[i], massive[j]);
- }
- massive[l+1] = massive[j];
- massive[j] = cur;
- if (j >= k) r = j - 1;
- if (j <= k) l = i;
- }
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- freopen("kth.in", "r", stdin);
- freopen("kth.out", "w", stdout);
- cin >> n >> k;
- int A, B, C;
- cin >> A >> B >> C >> massive[0] >> massive[1];
- for (int i = 2; i < n; ++i) {
- massive[i] = massive[i - 2] * A + B * massive[i - 1] + C;
- } --k;
- cout << nth(k) ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement