Submission #1179532

#TimeUsernameProblemLanguageResultExecution timeMemory
1179532gygRadio Towers (IOI22_towers)C++20
14 / 100
256 ms1832 KiB
#include "towers.h" #include <bits/stdc++.h> using namespace std; #define arr array #define vec vector const int N = 1e5 + 5; int n; arr<int, N> h; arr<int, N> sm; int rng(int l, int r) { if (l > r) return 0; return sm[r] - sm[l - 1]; } void sm_cmp() { for (int i = 1; i <= n; i++) sm[i] = sm[i - 1] + (h[i] < h[i - 1] && h[i] < h[i + 1]); } void init(int _n, vec<int> _h) { n = _n; for (int i = 1; i <= n; i++) h[i] = _h[i - 1]; sm_cmp(); } int max_towers(int l, int r, int d) { l++, r++; assert(d == 1); if (l == r) return 1; int ans = rng(l + 1, r - 1); for (int i : {l, r}) { int cnt = (i == l || h[i] < h[i - 1]) + (i == r || h[i] < h[i + 1]); ans += (cnt == 2); } return ans; }
#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...