1. 程式人生 > >HLJU 1220: AC100天 (枚舉)

HLJU 1220: AC100天 (枚舉)

忘記 rip [0 article 一個 細致 search print set

1220: AC100天

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 89 Solved: 12
[Submit][Status][Web Board]

Description

迪迪給自己定了一個雄偉的目標:連續100天每天堅持AC一道題目。100天過去了,迪迪查看自己的AC記錄發現有N天由於貪玩忘記AC了。於是迪迪軟磨硬泡、強忍著田田歧視的眼神從田田那裏要來M張"補AC卡"。每張"補AC卡"都能夠補回一天的AC,將原本沒有AC的一天變成有AC的一天。迪迪想知道通過利用這M張補AC卡,能夠使自己的"最長連續AC天數"最多變成多少天。

Input

輸入包括多組例子。

每一個測試數據第一行是2個整數N和M(0 <= N, M <= 100)。第二行包括N個整數a1, a2, ... aN(1 <= a1 < a2 < ... < aN <= 100)。表示第a1, a2, ... aN天沒有AC。

Output

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

Sample Input

5 1
34 77 82 83 84
5 2
10 30 55 56 90

Sample Output

76
59

HINT

題中姓名純屬虛構。如有雷同,純屬巧合!

Source

tyh




解析:水題一道,細致考慮清楚每種特殊情況就可以。



AC代碼:

#include <bits/stdc++.h>
using namespace std;

int a[102];

int main(){
    #ifdef sxk
        freopen("in.txt", "r", stdin);
    #endif //sxk
    int n, m;
    while(~scanf("%d%d", &n, &m)){
        for(int i=1; i<=n; i++) scanf("%d", &a[i]);
        if(m >= n){ printf("%d\n", 100); continue; }
        int ans = 0;
        a[0] = 0;
        a[n+1] = 101;
        for(int i=1; i<=n+1; i++){
            int foo = a[min(m+i, n+1)] - 1 - a[i-1];
            ans = max(ans, foo);
        }
        printf("%d\n", ans);
    }
    return 0;
}



HLJU 1220: AC100天 (枚舉)