V-补提交卡
小Ho給自己定了一個宏偉的目標:連續(xù)100天每天堅持在hihoCoder上提交一個程序。100天過去了,小Ho查看自己的提交記錄發(fā)現(xiàn)有N天因為貪玩忘記提交了。于是小Ho軟磨硬泡、強忍著小Hi鄙視的眼神從小Hi那里要來M張"補提交卡"。每張"補提交卡"都可以補回一天的提交,將原本沒有提交程序的一天變成有提交程序的一天。小Ho想知道通過利用這M張補提交卡,可以使自己的"最長連續(xù)提交天數(shù)"最多變成多少天。
Input
第一行是一個整數(shù)T(1 <= T <= 10),代表測試數(shù)據(jù)的組數(shù)。
每個測試數(shù)據(jù)第一行是2個整數(shù)N和M(0 <= N, M <= 100)。第二行包含N個整數(shù)a1, a2, ... aN(1 <= a1 < a2 < ... < aN <= 100),表示第a1, a2, ... ?aN天小Ho沒有提交程序。
Output
對于每組數(shù)據(jù),輸出通過使用補提交卡小Ho的最長連續(xù)提交天數(shù)最多變成多少。
Sample Input
3 5 1 34 77 82 83 84 5 2 10 30 55 56 90 5 10 10 30 55 56 90Sample Output
76 59 100 ? import java.util.*; public class Main { static Scanner in = new Scanner(System.in); public static void main(String[] args) { int k=in.nextInt(); int[] d=new int[100]; while (k-->0) { int days=in.nextInt(); int card=in.nextInt(); int max; for (int i = 0; i < days; i++){ d[i]=in.nextInt(); } if(card>=days) System.out.println(100); else{ max=d[card]-1;//初始令它等于補辦前幾天的卡 ? //這里解釋一下,就是尋找間隔卡的個數(shù)的區(qū)間長度最大的即可 ? ?for (int i = 0; i <= days-(card+2); i++) { if(d[i+card+1]-d[i]-1>max){ max=d[i+card+1]-d[i]-1; } } System.out.println(max); } } } }?
總結(jié)
- 上一篇: 以index.wxml为例解析WXML
- 下一篇: javaIO流之缓冲流