# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1078842 | LittleOrange | Radio Towers (IOI22_towers) | C++17 | 4075 ms | 2236 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "towers.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
using ll = int;
ll n;
vector<ll> h;
ll mx;
struct obj{
ll v,c;
bool operator<(const obj &o) const{
return v<o.v;
}
bool operator>(const obj &o) const{
return v>o.v;
}
};
void init(int N, std::vector<int> H) {
n = N;
h = H;
for(ll i = 0;i<n;i++) if((i==0||(h[i-1]<h[i]))&&(i==n-1||h[i]>h[i+1])) mx = i;
}
int max_towers(int L, int R, int D) {
ll l = L, r = R, d = D;
ll ans = 1;
vector<obj> a,b;
a.push_back({0,0});
for(ll i = l;i<=r;i++){
ll cur = 0;
obj oa = {h[i],cur+1};
while(a.size()&&a.back().v>=h[i]) a.pop_back();
a.push_back(oa);
}
return 1+(L<mx&&mx<R&&max(h[L],h[R])<=h[mx]);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |