Guest User

Untitled

a guest
Sep 29th, 2014
670
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include <cstdio>
  2. #include <map>
  3. using namespace std;
  4.  
  5. const int Maxn = 100005;
  6.  
  7. int t;
  8. int n, a;
  9. int s[Maxn];
  10. map <int, int> M;
  11. int res;
  12.  
  13. bool Ok()
  14. {
  15.     if (M.empty()) return true;
  16.     map <int, int>::iterator st = M.begin(), en = M.end(); en--;
  17.     return en->first - st->first <= a;
  18. }
  19.  
  20. int main()
  21. {
  22.     scanf("%d", &t);
  23.     for (int tc = 1; tc <= t; tc++) {
  24.         scanf("%d %d", &n, &a);
  25.         for (int i = 0; i < n; i++)
  26.             scanf("%d", &s[i]);
  27.         res = 0;
  28.         int r = 0;
  29.         for (int l = 0; l < n; l++) {
  30.             while (r < n && Ok()) { M[s[r]]++; r++; }
  31.             int got = r - l - bool(!Ok());
  32.             res = max(res, got);
  33.             if (--M[s[l]] == 0) M.erase(s[l]);
  34.         }
  35.         printf("Case #%d: %d\n", tc, res);
  36.     }
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment