ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj 1011
    카테고리 없음 2021. 8. 15. 02:56

    처음 경계조건이 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";
    	}
    }

    댓글

Designed by Tistory.