Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- int main()
- {
- unsigned long long x, y;
- cin >> x >> y;
- if(x > y)
- {
- int aux = y;
- y = x;
- x = aux;
- }
- unsigned long long k1 = ceil( (-1 + sqrt(1 + 8 * x))/2);
- unsigned long long poz1 = x - k1*(k1-1)/2;
- unsigned long long k2 = ceil( (-1 + sqrt(1 + 8 * y))/2);
- unsigned long long poz2 = y - k2*(k2-1)/2;
- cout << x << ' ';
- while(x < y)
- {
- if(poz1 > poz2 )
- {
- x--;
- poz1--;
- }
- else if(poz1 == poz2 || (k2-k1 > 2 && k1-poz1 < k2-poz2 ) || (poz1 +1 == poz2 && k2 - k1 ==2 ))
- {
- x += k1;
- k1++;
- }
- else
- { if(k1-poz1 > k2-poz2)
- {
- x++;
- poz1++;
- }
- else{
- x += k1+1;
- k1++;
- poz1++;
- }
- }
- cout << x <<' ';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment