지우너
[코드트리] 이차원 배열의 오름차순 정리 C++ 본문
문제
코드
#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;
}
'Problem Solving' 카테고리의 다른 글
[코드트리] 번호표를 든 N명의 사람 C++ (0) | 2024.08.31 |
---|---|
[코드트리] 최소 통과 시간 C++ (0) | 2024.08.30 |
[코드트리] 정수 분배하기 C++ (0) | 2024.08.28 |
[코드트리] 선분 위의 점 C++ (0) | 2024.08.27 |
[코드트리] 숫자의 개수 C++ (0) | 2024.08.27 |