Submission #1225853

#TimeUsernameProblemLanguageResultExecution timeMemory
1225853the_coding_poohRadio Towers (IOI22_towers)C++20
4 / 100
261 ms7716 KiB
#include "towers.h" #include <bits/stdc++.h> #define uwu return using namespace std; #define fs first #define sc second #define all(x) x.begin(), x.end() const int SIZE = 1e5 + 5, LOG_C = 19; int sps_tbl[LOG_C][SIZE], H[SIZE]; int pos_max(int a, int b){ if(H[a] > H[b]) return a; return b; } void output(long long a, bool b){ if(b) cerr << '\n'; else cerr << a << ' '; return; } int query(int l, int r){ int lv = __lg(r - l + 1); uwu pos_max(sps_tbl[lv][l], sps_tbl[lv][r - (1 << lv) + 1]); } void init(int N, vector<int> _H) { for (int i = 0; i < N; i++){ sps_tbl[0][i] = i; H[i] = _H[i]; } for (int lv = 1; lv < LOG_C; lv++){ for (int i = 0; i < N - (1 << lv) + 1; i++){ sps_tbl[lv][i] = pos_max(sps_tbl[lv - 1][i], sps_tbl[lv - 1][i + (1 << (lv - 1))]); } } uwu; } int max_towers(int L, int R, int D) { int rt = query(L, R); if(abs(H[L] - H[rt]) >= D && abs(H[R] - H[rt]) >= D) uwu 2; uwu 1; }
#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...