#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
long count=n*k;
int a[count];
for(int i=0; i<n; i++)
{
cin>>a[i];
}
for(int i=1; i<=k; i++)
{
for(int j=0; j<n; j++)
a[n*i+j]=a[j];
}
for(int i=0; i<12; i++)
cout<<a[i]<<" ";
cout<<endl;
vector<int> nums(a, a + count);
vector<int> maxLen(nums.size()); //记录长度
maxLen[0] = 1;
for (int i = 1; i < nums.size(); ++i)
{
int maxL = 0, maxI = -1;
for (int k = i - 1; k >= 0; --k)
{
if (nums[k] > nums[i])
continue;
if (maxLen[k] > maxL)
{
maxL = maxLen[k];
maxI = k;
}
}
maxLen[i] = maxL + 1;
}
int maxL = maxLen[0];
for (int i = 1; i < nums.size(); ++i) //找出长度最长的不下降子序列,即maxLen[i]最大的情况
{
if (maxLen[i] > maxL)
maxL = maxLen[i];
}
cout << maxL << endl;
}
显示越界20% 有大佬知道怎么改吗?