Alx09

Untitled

Apr 7th, 2019
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. unsigned long long x, y;
  8. cin >> x >> y;
  9. if(x > y)
  10. {
  11. int aux = y;
  12. y = x;
  13. x = aux;
  14. }
  15. unsigned long long k1 = ceil( (-1 + sqrt(1 + 8 * x))/2);
  16. unsigned long long poz1 = x - k1*(k1-1)/2;
  17. unsigned long long k2 = ceil( (-1 + sqrt(1 + 8 * y))/2);
  18. unsigned long long poz2 = y - k2*(k2-1)/2;
  19.  
  20. cout << x << ' ';
  21.  
  22. while(x < y)
  23. {
  24. if(poz1 > poz2 )
  25. {
  26. x--;
  27. poz1--;
  28. }
  29. else if(poz1 == poz2 || (k2-k1 > 2 && k1-poz1 < k2-poz2 ) || (poz1 +1 == poz2 && k2 - k1 ==2 ))
  30. {
  31. x += k1;
  32. k1++;
  33. }
  34. else
  35. { if(k1-poz1 > k2-poz2)
  36. {
  37. x++;
  38. poz1++;
  39. }
  40.  
  41. else{
  42. x += k1+1;
  43. k1++;
  44. poz1++;
  45. }
  46. }
  47. cout << x <<' ';
  48. }
  49.  
  50.  
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment