题目描述 经过多番苦战,小K成功闯入了魔王LX的城堡。魔王LX被逼无奈,放出了他的秘密武器:赛博人克隆军团。
赛博人军团组成了大小为 n×m 的一个矩阵队列,其中位置 a[i][j] 的赛博人士兵战斗力为 i×j(下标从 1 开始)。
决战前,小K 望着面前的大军陷入了沉思。他想知道,在整个矩阵军团中,战斗力第 k 小的士兵的战斗力是多少。 输入
输出
1 2 3
2 4 6
3 6 9
战斗力从小到大排列:1,2,2,3,3,4,6,6,9,所以第 5 小的战斗力是 3。输入样例2
2 3 6
输出样例2
6
1 2 3
2 4 6
战斗力从小到大排列:1,2,2,3,4,6,所以第 6 小的战斗力是 6。#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main(){
cin>>n>>m>>k;
long long l=1,r=n*m;
while(l<r)
{
long long p=0,mid=(l+r)/2;
for(int i=1;i<=n;i++)
{
long long j=mid/i;
if(j>m) p+=m;
else p+=j;
}
if(p>=k) r=mid;
else l=mid+1;
}
cout<<r;
return 0;
}