이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "towers.h"
#include <bits/stdc++.h>
//#include <cassert>
//#include <cstdio>
#define ll int
//#include <vector>
using namespace std;
vector<ll>v;
const ll N=1e5+9;
const ll INF=1e9;
ll tr[4*N],sz,szz,k,fll;
void init(int N, std::vector<int> H) {
for(auto to:H){
v.push_back(to);
}
k=0,fll=0;
for(int i=1; i<N; i++){
if(v[i]>v[i-1]) szz=i;
else fll=1;
if(fll==1 && v[i-1]<=v[i]) k=1;
}
}
int max_towers(int L, int R, int D) {
ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
if(k==0){
if(L<=szz && szz<=R && v[L]<=v[szz]-D && v[R]<=v[szz]-D) return 2;
return 1;
}
ll curr=-1;
ll mn=v[L],res=1;
for(int i=L+1; i<=R; i++){
if(curr<0){
if(v[i]<mn) mn=v[i];
else if(v[i]-D>=mn) curr=v[i];
}
else{
if(v[i]<=curr-D) res++,mn=v[i],curr=-curr;
else if(v[i]>curr) curr=v[i];
}
}
return res;
}
# | 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... |