← Back to List

1300번: K번째 수 ↗

Solutions

C++14
469 B | 469 chars
#include <iostream>
#define ll long long
using namespace std;
ll N,K;
ll s = 1,e,mid,ans;
ll min(ll a, ll b) {
    return a>b?b:a;
}
int main() {
    cin >> N >> K;
    e = K;
    while(s<=e) {
        mid = (s+e)/2;
        int m = 0;
        for(int x = 1; x<=N; x++) {
            m += min(N, (int)mid/x);
        }
        if(m < K){
            s = mid + 1;
        }
        else {
            ans = mid;
            e = mid -1;
        }
    }
    cout << ans;
}