-
처음 경계조건이 1, 2, ... n, n-1 ... 1 인 경우고 그 다음이 1, 2, ... n, n, ... 1 이다. 그 사이는 적당히 n을 작은거로 바꿔서 중간에 넣어주면 된다.
#include <bits/stdc++.h> using namespace std; int f(long long x) { if (x <= 3) return x; int u = 0; u = sqrt(x); if (x == u*u) return 2 * u - 1; if (x - u*u <= u) return 2 * u; return 2 * u + 1; } int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //f(5); int T; cin >> T; while (T--) { int x,y; cin >> x >> y; int d = y - x; cout << f(d) << "\n"; } }