原来这就是贪心啊……
一共100天,有n天没签到,有m张补签卡,那么这m张补签卡一定要连着用才能让连续天数最大,贪心规则
所以就要枚举给出的n天中连着的m天,找出最大值,注意第一天和最后一天的计算
还有就是m比n大时就能连着100天啦~
#include <iostream>
using namespace std;
int s[101];
int i,j;
int main(int argc, const char * argv[]) {
int T;
cin>>T;
while (T--) {
int N,M;
cin>>N>>M;
for (i=0; i<N; i++) {
cin>>s[i];
}
if(M>=N)
{
cout<<"100"<<endl;
continue;
}
int max=s[M]-1;
int middle=0;
for (i=1; i<N-M+1; i++) {
middle=s[i+M]-1-s[i-1];
if (middle>=max) {
max=middle;
}
}
middle=100-s[i-1]+1;
if (middle>=max) {
max=middle;
}
cout<<max<<endl;
}
return 0;
}