Submission #1076466

#TimeUsernameProblemLanguageResultExecution timeMemory
1076466peacebringer1667The short shank; Redemption (BOI21_prison)C++17
0 / 100
45 ms9788 KiB
#include<bits/stdc++.h>
#define ll long long
#define ldb long double
#define fi first
#define se second
#define sza(a) (int)a.size()
#define pir pair<int,int>
#define pirll pair<ll,ll>
using namespace std;
const int maxn = 2e6 + 5;
const int inf = 1e9;

int a[maxn],arr[maxn];

void input(int n){
	arr[0] = inf;
	for (int i = 1 ; i <= n ; i++){
		cin >> a[i];
		arr[i] = min(arr[i - 1],a[i] - i);
	}
	arr[0] = 0;
}

int freq[maxn];
int calc(const vector <int> &lst,int D){
	int lim = 0;
	for (int x : lst){
		freq[x]++;
		lim = max(lim,x);
	}
	int res = 0;
	
	while (D && lim){
		res += min(D,freq[lim]) * lim;
		D -= min(D,freq[lim]);
		lim--;
	}
	
	return res;
}


int solve(int n,int D,int T){
	int cur = inf,res = 0;
	vector <int> lst;
	priority_queue <int> pq;
	
	for (int i = n ; i > 0 ; i--){
	    int cur = a[i] - i,cnt = 0;
		 
	    while (pq.size()){
	     	int t = pq.top();
	     	
	     	if (t >= cur){
	     		cnt++;
	     		pq.pop();
			}
			else break;
		    }
		    if (cnt > 0) lst.push_back(cnt);
	  
	    if (i + arr[i] > T)
	       res++;
	    else if (a[i] > T)
	       pq.push(T - i);
	}
	
	return res + calc(lst,D);
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	int n,D,T;
	cin >> n >> D >> T;
	input(n);
	
	cout << n - solve(n,D,T);

	return 0;
}

Compilation message (stderr)

prison.cpp: In function 'int solve(int, int, int)':
prison.cpp:44:6: warning: unused variable 'cur' [-Wunused-variable]
   44 |  int cur = inf,res = 0;
      |      ^~~
#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...