voidsolve(int n, int m, int k, vector<int>& alarms){ sort(alarms.begin(), alarms.end()); deque<int> q; int right = 0, res = 0; while (right < n) { while (!q.empty() && (alarms[right] - q.front() >= m)) { q.pop_front(); } if (q.size() >= k - 1) { alarms[right] = 0; res++; } else { q.push_back(alarms[right]); } right++; } out << res << endl; }
intmain(){ int n, m, k; in >> n >> m >> k; vector<int> alarms; for (int t = 1; t <= n; t++) { int alarm; in >> alarm; alarms.push_back(alarm); } solve(n, m, k, alarms); return0; }