Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int M = 3e7 + 228;
  6. int massive[M];
  7. int n, k;
  8.  
  9. int nth(int k) {
  10. int l = 0, r = n - 1;
  11. for(;;) {
  12. if (r <= l + 1) {
  13. if (r == l + 1 && massive[r] < massive[l])
  14. swap(massive[l], massive[r]);
  15. return massive[k];
  16. }
  17. int m = (l + r) / 2;
  18. swap(massive[m], massive[l + 1]);
  19. if (massive[l] > massive[r])
  20. swap(massive[l], massive[r]);
  21. if (massive[l + 1] > massive[r])
  22. swap(massive[l + 1], massive[r]);
  23. if (massive[l] > massive[l + 1])
  24. swap(massive[l], massive[l + 1]);
  25. int i = l + 1;
  26. int j = r;
  27. int cur = massive[l + 1];
  28. for(;;) {
  29. while(massive[++i] < cur) ;
  30. while(massive[--j] > cur) ;
  31. if (i > j)
  32. break;
  33. swap(massive[i], massive[j]);
  34. }
  35. massive[l+1] = massive[j];
  36. massive[j] = cur;
  37. if (j >= k) r = j - 1;
  38. if (j <= k) l = i;
  39. }
  40. }
  41.  
  42. int main()
  43. {
  44. ios_base::sync_with_stdio(false);
  45. freopen("kth.in", "r", stdin);
  46. freopen("kth.out", "w", stdout);
  47. cin >> n >> k;
  48. int A, B, C;
  49. cin >> A >> B >> C >> massive[0] >> massive[1];
  50. for (int i = 2; i < n; ++i) {
  51. massive[i] = massive[i - 2] * A + B * massive[i - 1] + C;
  52. } --k;
  53. cout << nth(k) ;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement