Submission #659992

#TimeUsernameProblemLanguageResultExecution timeMemory
659992ymmThe short shank; Redemption (BOI21_prison)C++17
0 / 100
64 ms9760 KiB
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (ll)(r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (ll)(l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;

const int N = 1<<21;
int a[N];
int b[N];
int n, d, t;
priority_queue<int> pq;

int main()
{
	cin.tie(0) -> sync_with_stdio(false);
	cin >> n >> d >> t;
	int lst = 1e9+10;
	Loop (i,0,n) {
		cin >> a[i];
		b[i] = min(lst+1, a[i]);
		lst = b[i];
	}
	int cnt = 0;
	int ans = 0;
	Loop (i,0,n) {
		if (a[i] > t && b[i] <= t) {
			++cnt;
		} else {
			if (cnt)
				pq.push(cnt);
			cnt = 0;
		}
		if (b[i] <= t)
			++ans;
	}
	if (cnt)
		pq.push(cnt);
	while (pq.size() && d--) {
		ans -= pq.top();
		pq.pop();
	}
	cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...