지우너

[코드트리] 이차원 배열의 오름차순 정리 C++ 본문

Problem Solving

[코드트리] 이차원 배열의 오름차순 정리 C++

지옹 2024. 8. 29. 21:40

문제

https://www.codetree.ai/missions/8/problems/ascending-order-of-two-dimensional-array?&utm_source=clipboard&utm_medium=text

 

코드

#include <iostream>
using namespace std;

long long n, k; // k는 최대 (10)^9
int main() {
    cin >> n >> k;

    long long left =1, right=n*n, answer=0;
    while(left<=right){
        long long mid=(left+right)/2;

        long long cnt=0;
        for(int i=1; i<=n; ++i){
            cnt+=min(n, mid/i);
        }

        if(cnt>=k) {
            right=mid-1;
            answer=mid;
        }
        else left=mid+1;
    }
    cout << answer << '\n';
    return 0;
}