제출 #1067270

#제출 시각아이디문제언어결과실행 시간메모리
1067270n1kRadio Towers (IOI22_towers)C++17
11 / 100
4100 ms8892 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 getmin(int l, int r){ array<int, 2> mn={int(1e9) + 10, 0}; for(int i=l; i<=r; i++) mn = min(mn, {h[i], i}); return mn[0]; } int find(int l, int r, int d, long long minh){ if(l>r) return 0; array<int, 2> mx = {0}; for(int i=l; i<=r; i++){ mx = max(mx, {h[i], i}); } int ret = max({ int(mx[0]+d<=minh), find(l, mx[1]-1, d, mx[0]) + find(mx[1] + 1, r, d, mx[0]), int(getmin(l, mx[1]-1)+d<=minh), int(getmin(mx[1]+1, r)+d<=minh) }); return ret; } 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...