- toc {:toc}
ํ์ด
์ฒ์ ์์ํ ๋์ ๋๋ ๋ 1๋ก ์์ํ๊ณ 1๋ก ๋๋์ผ ํ๋ค๋ ์ ์ ์์ธ์ฌํญ์ผ๋ก ์๊ฐํด๋๊ณ ํ์ดํ๋ค.
์ด๋ํ ์ ์๋ ๋ฐฉ์์ด n-1, n, n+1๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ๋ ๋์นญ์ ์ผ๋ก ๊ณ์ฐํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
์๋ฅผ ๋ค์ด x, y๊ฐ ๊ฐ๊ฐ 0, 5๋ผ๊ณ ํ๋ฉด 5๋ฅผ ์ด๋ํด์ผ ํ๋ค. ์์, ๋์ฐฉ 1๊ด๋ 2๋ฒ ์๊ฐํ๋ฉด 3์ด ๋จ๊ณ , ๋ด๊ฐ ์ ํํ ์ ์๋ ์ด๋ ๋ฐฉ์์ด 1๊ด๋ ์ด๋ ํน์ 2๊ด๋ ์ด๋์ด๋ค. 2๊ด๋ 2๋ฒ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ 2, 1์ ์ฌ์ฉํด์ผ ํ๋ค.
์ฆ, n๊ด๋ x2 ๋ณด๋ค ๋จ์ ๊ฑฐ๋ฆฌ๊ฐ ๊ธธ๋ค๋ฉด ๋์นญ์ ์ผ๋ก ๊ณ์ฐํด์ฃผ๋ฉด ๋๊ณ , n๊ด๋ x2 ๋ณด๋ค ๋จ์ ๊ฑฐ๋ฆฌ๊ฐ ์งง๊ฑฐ๋ ๊ฐ๋ค๋ฉด n๊ด๋ ์ 1๋ฒ๋ง ์ ์ฉํด์ค๋ค. ๊ฐ์ ๊ฒฝ์ฐ์๋ n+1๊ด๋ 1๋ฒ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ(n=1 ๋จ์ ๊ฑฐ๋ฆฌ=2)์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ(n=3, ๋จ์ ๊ฑฐ๋ฆฌ=6)๊ฐ ์์ด ์ฒ๋ฆฌํด์ค๋ค.
์ฒ์์ ์๊ฐํด๋์๋ ์์ธ์ฌํญ๊น์ง ์์ ๋จ๊ณ์ ์ ์ฉํด์ค๋ค.
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int T, x, y;
long long num, res = 0;
cin >> T;
for(int i = 0; i < T; i++){
num = 1;
res = 0;
cin >> x >> y;
long long diff = y - x;
if(diff == 2){
cout << 2 << '\n';
continue;
}
while(true){
if(num * 2 < diff){
diff = diff - num * 2;
res += 2;
num++;
}
else if(num * 2 == diff){
if (num+1 < diff) res += 2;
else res++;
break;
}
else {
diff = diff - num;
res++;
}
if(diff <= 0) break;
}
cout << res << '\n';
}
return 0;
}
ํ์ด๋ฅผ ๋ฐ๋ก๋ฅผ ์ฐพ์๊ฐ๋ฉฐ ๋ผ์๋ง์ถ๊ธฐ๋ก ํด์ ์ด๋ ๊ฒ ํธ๋ ๊ฒ์ด ์ณ์ ๊ฒ์ธ๊ฐ ์๊ฐ์ด ๋ค์ด ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐพ์๋ดค๋๋ ํ๋ฅผ ๊ทธ๋ ค ๊ท์น์ฑ์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ๋ง์ด ํ์ดํ๋ค. ์ฒดํฌํด๋๊ณ ๋ค์ ํ์ด๋ด์ผ๊ฒ ๋ค.