#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;
const ll INF=1e9;
ll tr[4*N],sz,szz,k,fll;
void build(ll x, ll l_x, ll r_x){
if(l_x==r_x) tr[x]=v[l_x-1];
else{
ll mid=(l_x+r_x)>>1;
build(x<<1,l_x,mid);
build(x<<1|1,mid+1,r_x);
tr[x]=max(tr[x<<1],tr[x<<1|1]);
}
}
ll GET(ll x, ll l_x, ll r_x, ll l, ll r){
if(l_x>r || l>r_x) return -INF;
if(l<=l_x && r_x<=r) return tr[x];
ll mid=(l_x+r_x)>>1;
return max(GET(x<<1,l_x,mid,l,r),GET(x<<1|1,mid+1,r_x,l,r));
}
void init(int N, std::vector<int> H) {
for(auto to:H){
v.push_back(to);
}
sz=1ll;
while(sz<N) sz<<=1;
build(1ll,1ll,sz);
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]<=v[i-1]) k=1;
}
}
int max_towers(int L, int R, int D) {
if(k==0){
if(L<=szz && szz<=R && v[L]<=v[szz]-D && v[R]<=v[szz]-D) return 2;
return 1;
}
vector<pair<ll,ll>>cur,anss;
for(int i=L; i<=R; i++){
cur.push_back(make_pair(v[i],i));
}
sort(cur.begin(),cur.end());
for(auto [to,it]:cur){
bool fl=0;
for(auto [to2,it2]:anss){
ll res=GET(1,1,sz,min(it,it2)+2,max(it,it2))-D;
if(res>=to && res>=to2 && abs(it-it2)!=1) fl=0;
else{
fl=1;
break;
}
}
if(fl==0) anss.push_back(make_pair(to,it));
}
return anss.size();
// return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4006 ms |
2516 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
15 ms |
372 KB |
Output is correct |
3 |
Correct |
2 ms |
360 KB |
Output is correct |
4 |
Correct |
11 ms |
336 KB |
Output is correct |
5 |
Correct |
4 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
336 KB |
Output is correct |
8 |
Correct |
1 ms |
336 KB |
Output is correct |
9 |
Correct |
1 ms |
336 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
1 ms |
336 KB |
Output is correct |
12 |
Correct |
0 ms |
208 KB |
Output is correct |
13 |
Correct |
1 ms |
336 KB |
Output is correct |
14 |
Correct |
1 ms |
336 KB |
Output is correct |
15 |
Correct |
2 ms |
336 KB |
Output is correct |
16 |
Correct |
73 ms |
336 KB |
Output is correct |
17 |
Correct |
9 ms |
360 KB |
Output is correct |
18 |
Correct |
1 ms |
336 KB |
Output is correct |
19 |
Correct |
1 ms |
336 KB |
Output is correct |
20 |
Correct |
75 ms |
356 KB |
Output is correct |
21 |
Correct |
116 ms |
356 KB |
Output is correct |
22 |
Correct |
109 ms |
336 KB |
Output is correct |
23 |
Correct |
1 ms |
336 KB |
Output is correct |
24 |
Correct |
1 ms |
336 KB |
Output is correct |
25 |
Correct |
1 ms |
336 KB |
Output is correct |
26 |
Correct |
6 ms |
336 KB |
Output is correct |
27 |
Correct |
31 ms |
336 KB |
Output is correct |
28 |
Correct |
21 ms |
336 KB |
Output is correct |
29 |
Correct |
29 ms |
356 KB |
Output is correct |
30 |
Correct |
8 ms |
464 KB |
Output is correct |
31 |
Correct |
10 ms |
336 KB |
Output is correct |
32 |
Correct |
0 ms |
336 KB |
Output is correct |
33 |
Correct |
1 ms |
336 KB |
Output is correct |
34 |
Correct |
1 ms |
336 KB |
Output is correct |
35 |
Correct |
1 ms |
336 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
15 ms |
372 KB |
Output is correct |
3 |
Correct |
2 ms |
360 KB |
Output is correct |
4 |
Correct |
11 ms |
336 KB |
Output is correct |
5 |
Correct |
4 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
336 KB |
Output is correct |
8 |
Correct |
1 ms |
336 KB |
Output is correct |
9 |
Correct |
1 ms |
336 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
1 ms |
336 KB |
Output is correct |
12 |
Correct |
0 ms |
208 KB |
Output is correct |
13 |
Correct |
1 ms |
336 KB |
Output is correct |
14 |
Correct |
1 ms |
336 KB |
Output is correct |
15 |
Correct |
2 ms |
336 KB |
Output is correct |
16 |
Correct |
73 ms |
336 KB |
Output is correct |
17 |
Correct |
9 ms |
360 KB |
Output is correct |
18 |
Correct |
1 ms |
336 KB |
Output is correct |
19 |
Correct |
1 ms |
336 KB |
Output is correct |
20 |
Correct |
75 ms |
356 KB |
Output is correct |
21 |
Correct |
116 ms |
356 KB |
Output is correct |
22 |
Correct |
109 ms |
336 KB |
Output is correct |
23 |
Correct |
1 ms |
336 KB |
Output is correct |
24 |
Correct |
1 ms |
336 KB |
Output is correct |
25 |
Correct |
1 ms |
336 KB |
Output is correct |
26 |
Correct |
6 ms |
336 KB |
Output is correct |
27 |
Correct |
31 ms |
336 KB |
Output is correct |
28 |
Correct |
21 ms |
336 KB |
Output is correct |
29 |
Correct |
29 ms |
356 KB |
Output is correct |
30 |
Correct |
8 ms |
464 KB |
Output is correct |
31 |
Correct |
10 ms |
336 KB |
Output is correct |
32 |
Correct |
0 ms |
336 KB |
Output is correct |
33 |
Correct |
1 ms |
336 KB |
Output is correct |
34 |
Correct |
1 ms |
336 KB |
Output is correct |
35 |
Correct |
1 ms |
336 KB |
Output is correct |
36 |
Execution timed out |
4043 ms |
1712 KB |
Time limit exceeded |
37 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4011 ms |
2884 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4032 ms |
1232 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
15 ms |
372 KB |
Output is correct |
3 |
Correct |
2 ms |
360 KB |
Output is correct |
4 |
Correct |
11 ms |
336 KB |
Output is correct |
5 |
Correct |
4 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
336 KB |
Output is correct |
8 |
Correct |
1 ms |
336 KB |
Output is correct |
9 |
Correct |
1 ms |
336 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
1 ms |
336 KB |
Output is correct |
12 |
Correct |
0 ms |
208 KB |
Output is correct |
13 |
Correct |
1 ms |
336 KB |
Output is correct |
14 |
Correct |
1 ms |
336 KB |
Output is correct |
15 |
Correct |
2 ms |
336 KB |
Output is correct |
16 |
Correct |
73 ms |
336 KB |
Output is correct |
17 |
Correct |
9 ms |
360 KB |
Output is correct |
18 |
Correct |
1 ms |
336 KB |
Output is correct |
19 |
Correct |
1 ms |
336 KB |
Output is correct |
20 |
Correct |
75 ms |
356 KB |
Output is correct |
21 |
Correct |
116 ms |
356 KB |
Output is correct |
22 |
Correct |
109 ms |
336 KB |
Output is correct |
23 |
Correct |
1 ms |
336 KB |
Output is correct |
24 |
Correct |
1 ms |
336 KB |
Output is correct |
25 |
Correct |
1 ms |
336 KB |
Output is correct |
26 |
Correct |
6 ms |
336 KB |
Output is correct |
27 |
Correct |
31 ms |
336 KB |
Output is correct |
28 |
Correct |
21 ms |
336 KB |
Output is correct |
29 |
Correct |
29 ms |
356 KB |
Output is correct |
30 |
Correct |
8 ms |
464 KB |
Output is correct |
31 |
Correct |
10 ms |
336 KB |
Output is correct |
32 |
Correct |
0 ms |
336 KB |
Output is correct |
33 |
Correct |
1 ms |
336 KB |
Output is correct |
34 |
Correct |
1 ms |
336 KB |
Output is correct |
35 |
Correct |
1 ms |
336 KB |
Output is correct |
36 |
Execution timed out |
4043 ms |
1712 KB |
Time limit exceeded |
37 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4006 ms |
2516 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |