Source Code
#ifndef Local
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC target("popcnt,abm,mmx,avx2")
#endif
#include <bits/stdc++.h>

using namespace std;

#define popCnt(x) (__builtin_popcountll(x))
#define sz(x) ((int)(x.size()))
#define all(v) begin(v), end(v)
#define rall(v) rbegin(v), rend(v)
#define rep(i, l, r) for (int i = l; i < r; ++i)
using Long = long long;
using Double = double;
using vi = vector<int>;

template <class U, class V>
istream& operator>>(istream& is, pair<U, V>& p) {
  is >> p.first >> p.second;
  return is;
}
template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}

template <class T>
ostream& operator<<(ostream& os, const vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  return os;
}
int n, k, e;
bool solve() {
  set<pair<int, int>> st;
  int candy_l = 1, candy_r = 1;
  for (int i = 1; i <= n; ++i) {
    while (candy_r <= min(n, i + e)) {
      st.emplace(-candy_r / k, candy_r);
      ++candy_r;
    }
    if (candy_l < i - e) {
      st.erase(make_pair(-candy_l / k, candy_l));
      ++candy_l;
    }
    if (st.empty()) return false;
    st.erase(st.begin());
  }
  return true;
  
}

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifdef Local
  freopen("test.in", "r", stdin);
  freopen("test.out", "w", stdout);
#else
#define endl '\n'
#endif
  cin >> n >> k >> e;
  cout << (solve() ? "Yes" : " No") << endl;
  return 0;
}
Copy
Scientific Study Mohammad_Yasser
GNU G++17
3 ms
720 KB
Runtime Error