Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. #include <vector>
  4. #include <cmath>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. vector <unsigned long long> v, s;
  12.  
  13. vector <bool> a(1000000001, 0);
  14.  
  15. int n;
  16. long long k, x;
  17. cin >> n >> x >> k;
  18.  
  19. for (int i = 0; i < n; i++) {
  20. unsigned long long tmp;
  21. cin >> tmp;
  22. s.push_back(tmp);
  23. }
  24.  
  25.  
  26. sort(v.begin(), v.end());
  27.  
  28. for (int i = 0; i < n; i++) {
  29. unsigned long long tmp = s[i];
  30.  
  31. if (!a[tmp %x]) {
  32. a[tmp%x] = true;
  33. v.push_back(tmp);
  34. }
  35. }
  36.  
  37. sort(v.begin(), v.end());
  38.  
  39. unsigned long long l = 0, r = 2 * pow(10, 18);
  40.  
  41.  
  42. while (l != r)
  43. {
  44. unsigned long long m = (l + r) / 2, sum = 0;
  45. for (auto i : v) {
  46. sum += (m < i) ? 0 : (m - i) / x + 1;
  47. }
  48. if (sum < k) {
  49. l = m + 1;
  50. }
  51. else {
  52. r = m;
  53. }
  54. }
  55.  
  56. cout << l << endl;
  57.  
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement