# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1214751 | dosts | 송신탑 (IOI22_towers) | C++20 | 0 ms | 0 KiB |
#include "towers.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9;
int sel = 0;
int len;
vi h;
void init(int N, std::vector<int> H) {
len = N;
h = H;
for (int i = 0;i<N;i++) {
if (H[i] > H[i+1]) {
sel = i;
break;
}
}
}
int max_towers(int L, int R, int D) {
if (R < sel || L > sel) return 1;
if (!sel || sel == len-1) return 1;
if (h[sel-1] <= h[sel]-D && h[sel+1] <= h[sel]-D) return 2;
return 1;
}