#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