Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- int key(int arr[], int l, int r) {
- int n = r - l + 1;
- int pivot = rand() % n;
- swap(arr[l + pivot], arr[r]);
- int v = arr[r], i = l;
- for (int j = l; j < r; j++)
- {
- if (arr[j] <= v)
- {
- swap(arr[i], arr[j]);
- i++;
- }
- }
- swap(arr[i], arr[r]);
- return i;
- }
- int stat(int arr[], int k, int n) {
- int left = 0, right = n;
- while (true) {
- int mid = key(arr, left, right);
- if (mid == k) {
- return arr[mid];
- }
- else if (k < mid) {
- right = mid;
- }
- else {
- left = mid + 1;
- }
- }
- }
- int main() {
- ifstream cin("kth.in");
- ofstream cout("kth.out");
- int n, k;
- cin >> n >> k;
- int A, B, C;
- cin >> A >> B >> C;
- int arr[n];
- cin >> arr[0] >> arr [1];
- for (int i = 2; i < n; i++) {
- arr[i] = A * arr[i-2] + B * arr[i-1] + C;
- }
- cout << stat(arr, k - 1, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement