为什么最后一个会输出零啊?
#include <iostream>
#include <cstdio>
using namespace std;
int n, k, L[100005];
long long temp, ans;
bool P(int x)
{
long long sum = 0;
for(int i=1;i<=n;i++)
{
sum += L[i] / x;
}
return sum >= k;
}
int main()
{
scanf("%d %d", &n, &k);
getchar();
for(int i=1;i<=n;i++)
{
scanf("%d", &L[i]);
getchar();
temp += L[i];
}
if(temp<k)
{
printf("0");
return 0;
}
int L = 0, R = temp, mid;
while(L<=R)
{
mid = (L + R) >> 1;
if(P(mid))
{
ans = mid;
L = mid + 1;
}
else R = mid - 1;
}
printf("%d", ans);
return 0;
}
请求大佬求助!
or2