Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int arr[3000001];
- void q_sort(int left, int right, int knumb){
- int center = arr[(left + right) / 2];
- int i = left;
- int j = right;
- do{
- while (arr[i] < center){
- i++;
- }
- while (arr[j] > center){
- j--;
- }
- if (i <= j){
- swap(arr[i], arr[j]);
- i++;
- j--;
- }
- }while(i <= j);
- if ((j > left) && (knumb <= j))
- q_sort(left, j, knumb);
- if ((i < right) && (knumb >= j))
- q_sort(j + 1, right, knumb);
- }
- int main(){
- ifstream cin("kth.in");
- ofstream cout("kth.out");
- int a, b, c, n, k;
- cin >> n >> k >> a >> b >> c;
- cin >> arr[0];
- if (n > 1) {
- cin >> arr[1];
- }else{
- cout << arr[0];
- }
- for (int i = 2; i < n; i++){
- arr[i] = a * arr[i - 2] + b * arr[i - 1] + c;
- }
- q_sort(0, n - 1, k - 1);
- cout << arr[k - 1] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement