题目描述
源代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100000;
int a[N + 1];
int b[N + 1];
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int n, m,t=0,d,i,j;
cin >> n >> m;
int count = 0;
int x;
for ( i = 0; i < n; i++)
{
cin >> a[i];
}
while (1)
{
for (j = 2; j <= a[n - 1]; j++)
{
t = 0;
for (i = 0; i < n; i++)
{
t += a[i] / j;
if (t == m)
{
b[i] = j;
break;
}
}
}
sort(b, b + N + 1, cmp);
cout << b[0] << endl;
break;
}
return 0;
}
关于这题
这里用了sort来帮助我们排序
如果根数满足要求 我们就存到 b数组里 再用sort 进行降序排序 求得最长长度
(这道老师给的题 没有找到能测试代码的地方 题目给的两个案例是能通过的 )