河南多校赛(4)GJJ来签到
2017-08-18 20:06
197 查看
Problem C: GJJ来签到
Description
GJJ每天都很忙碌, 他每天要上班, 还要回家烧饭洗衣服。GJJ的公司有个要求, 每天上班需要打卡,忙碌的GJJ有时候会忘记打卡签到了,导致他的缺勤记录里有对应N天未签到的记录。 Gjj可是认识管理部门的妹子琳, 琳给了他M张签到卡,每张都可以消除某一天的未签到记录。将原本未签到的一天变成已经签到的一天。GJJ现在想要利用这些签到卡使自己连续签到的天数最长, 小伙伴们请帮帮GJJ吧。
Input
第一行是一个正整数 T (T<=100),代表测试数据的组数。每个测试数据第一行是两个整数N和M(0<=N, M<=100)。第二行包含N个整数a1到aN,表示GJJ没有打卡签到,输入保证a1,a2,a3...aN是严格递增的,并且任意一个ai, 1<=ai<=100。
Output
对于每组数据,输出使用签到卡后,最多能让GJJ连续签到天数变成多少。Sample Input
28 2
3 4 19 26 33 53 62 90
5 2
27 29 49 50 70
Sample Output
5651
#include <stdio.h> int main() { int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); int a[n+5],max=0,i,j; for( i=1; i<=n; i++) { scanf("%d",&a[i]); } if(n<=m) max=100; //当妹子给的签到卡数量足够多时就直接满勤了 else { for( j=1; j+m+1<=n; j++) { if(a[j+m+1]-a[j]-1>max) max=a[j+m+ b0b7 1]-a[j]-1; //当签到卡数量不够多时第一种情况下当第一个缺勤日和最后一个缺勤日不用签到卡时按 } //数组元素依次往后查找 if(max<a[m+1]-1) max=a[m+1]-1; //第二种情况当首个缺勤日用了签到卡时 if(max<100-a[n-m]) max=100-a[n-m]; //第三种情况当最后一个缺勤日用了签到卡时 } printf("%d\n",max); } return 0; }
相关文章推荐
- GJJ来签到 (河南多校联萌 四 )
- 【ZZULIOJ】 2178 GJJ来签到
- zzuli-2178- GJJ来签到
- GJJ来签到
- GJJ来签到
- 河南省多校赛(4)GJJ的日常之再游戏
- 2178: GJJ来签到
- 河南省多校连萌(四)【zzuli 2178 GJJ来签到】
- ZZULIOJ【2178】GJJ来签到【水题】
- 多校连萌 (4) GJJ来签到
- 【zzuli 2178】(GJJ来签到)
- ZZU校赛总结 (loser的感想)
- 常见签到地址
- fjnu2013校赛G
- 广工校赛——神奇的编码
- 浙江工商大学15年校赛C题 我删我删,删删删 【简单模拟】
- B:BCD时钟 【2014年湖南科技大学校赛】
- 【ZJU】3863 Paths on the Tree 【浙大2015年4月校赛D题】 树分治
- (2015年郑州轻工业学院ACM校赛题) B迷宫
- (思维分析,贪心)湘大校赛,D.最小的数