HLJU 1220: AC100天 (枚舉)
阿新 • • 發佈:2017-05-22
忘記 rip [0 article 一個 細致 search print set
Submit: 89 Solved: 12
[Submit][Status][Web Board]
1220: AC100天
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 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天 (枚舉)