hiho 1051 : 補提交卡

    貪心大法

#1051 : 補提交卡

時間限制:2000ms
單點時限:1000ms
內存限制:256MB

描述

小Ho給自己定了一個宏偉的目標:連續100天每天堅持在hihoCoder上提交一個程序。100天過去了,小Ho查看自己的提交記錄發現有N天因爲貪玩忘記提交了。於是小Ho軟磨硬泡、強忍着小Hi鄙視的眼神從小Hi那裏要來M張"補提交卡"。每張"補提交卡"都可以補回一天的提交,將原本沒有提交程序的一天變成有提交程序的一天。小Ho想知道通過利用這M張補提交卡,可以使自己的"最長連續提交天數"最多變成多少天。

輸入

第一行是一個整數T(1 <= T <= 10),代表測試數據的組數。

每個測試數據第一行是2個整數N和M(0 <= N, M <= 100)。第二行包含N個整數a1, a2, ... aN(1 <= a1 < a2 < ... < aN <= 100),表示第a1, a2, ...  aN天小Ho沒有提交程序。

輸出

對於每組數據,輸出通過使用補提交卡小Ho的最長連續提交天數最多變成多少。

樣例輸入
3  
5 1  
34 77 82 83 84  
5 2  
10 30 55 56 90  
5 10  
10 30 55 56 90
樣例輸出
76  
59
100


#include <bits/stdc++.h>
using namespace std;
typedef long long ll ;
typedef double    dl ;
#define INF 0x7f
const int maxn =1e5+5; 
const int mod = 1000000007;  
#define f(i,l,r) for(int i=l;i<=r;++i)
#define g(i,l,r) for(int i=l;i>=r;--i)
int a[maxn];	int n,m;
void slove()
{
	int ans=0;
	m++;
	if(m>n)
	{
		ans=100;		
	}
	
	else
	{
		f(i,m,n)
		{
			ans=max(ans,a[i]-a[i-m]-1);
		}
	}
	
	cout<<ans<<endl;
}
int main()
{
     
  //  freopen("in","r",stdin);
    int N;
    cin>>N;
    while(N--)
    {
    
    	cin>>n>>m;
    	f(i,1,n)
    		cin>>a[i];
    	slove();
    }

  //  cout<<"hello"<<endl;

    return 0; 
}








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章