제출 #1225850

#제출 시각아이디문제언어결과실행 시간메모리
1225850the_coding_pooh송신탑 (IOI22_towers)C++20
0 / 100
8 ms1572 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]; int pos_max(int a, int b){ if(sps_tbl[0][a] > sps_tbl[0][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] = 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(sps_tbl[0][L] - sps_tbl[0][rt]) >= D && abs(sps_tbl[0][R] - sps_tbl[0][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...