제출 #1067257

#제출 시각아이디문제언어결과실행 시간메모리
1067257n1k송신탑 (IOI22_towers)C++17
0 / 100
4100 ms2344 KiB
#include "towers.h"
#include <bits/stdc++.h>

using namespace std;

int n;
vector<int> h;

void init(int N, std::vector<int> H) {
	n = N;
	h = H;
}

int find(int l, int r, int d, long long minh){
	//cerr<<l<<" "<<r<<endl;
	if(l>r) return 0;
	array<int, 2> mx = {0};
	for(int i=l; i<=r; i++){
		mx = max(mx, {h[i], i});
	}

	return max({
		int(mx[0]+d<=minh), 
		find(l, mx[1]-1, d, mx[0]) + find(mx[1] + 1, r, d, mx[0]),
		find(l, mx[1]-1, d, minh),
		find(mx[1] + 1, r, d, minh)
	});
}

int max_towers(int L, int R, int D) {
	return find(L, R, D, 1e18);
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...