tien_noob

Winter - LightOJ

Sep 1st, 2021 (edited)
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. //Make CSP great again
  2. #include <bits/stdc++.h>
  3. #define TASK "TESTCODE"
  4. using namespace std;
  5. const int oo = 1e9, N = 1e5;
  6. int dp[N + 2], a[N + 1], n, k;
  7. void read()
  8. {
  9.     cin >> n >> k;
  10.     dp[n + 1] = 0;
  11.     for (int i = 1; i <= n; ++ i)
  12.     {
  13.         cin >> a[i];
  14.         dp[i] = oo;
  15.     }
  16.     sort(a + 1, a + n + 1);
  17. }
  18. void solve()
  19. {
  20.     for (int i = n; i >= 1; -- i)
  21.     {
  22.         int j = upper_bound(a + i + 1, a + n + 1, a[i] + 2 * k) - a - 1;
  23.         for (int r = j; r >= max(i + 2, j - 3); -- r)
  24.         {
  25.             dp[i] = min(dp[i], dp[r + 1] + 1);
  26.         }
  27.     }
  28.     cout << (dp[1] == oo ? -1 : dp[1]) << '\n';
  29. }
  30. int main()
  31. {
  32.     ios_base::sync_with_stdio(false);
  33.     cin.tie(nullptr);
  34.     if (fopen(TASK".INP", "r"))
  35.     {
  36.         freopen(TASK".INP", "r", stdin);
  37.         //freopen(TASK".OUT", "w", stdout);
  38.     }
  39.     int t = 1;
  40.     bool typetest = true;
  41.     if (typetest)
  42.     {
  43.         cin >> t;
  44.     }
  45.     for (int __ = 1; __ <= t; ++ __)
  46.     {
  47.         cout << "Case " << __ <<": ";
  48.         read();
  49.         solve();
  50.     }
  51. }
  52. ;
  53.  
Add Comment
Please, Sign In to add comment