Submission #1195346

#TimeUsernameProblemLanguageResultExecution timeMemory
1195346ByeWorldRadio Towers (IOI22_towers)C++20
0 / 100
4069 ms1824 KiB
#include "towers.h" #include <bits/stdc++.h> #define ll long long #define fi first #define se second #define pb push_back using namespace std; typedef pair<ll,ll> pii; typedef pair<ll,pii> ipii; const int MAXN = 3e5+100; const int LOG = 19; const ll INF = 2e18+10; const int INF2 = 2e9+10; void chmx(auto &a, auto b){ a = max(a, b); } void chmn(auto &a, auto b){ a = min(a, b); } int n, h[MAXN], pr[MAXN]; void init(int N, std::vector<int> H) { n = N; for(int i=1; i<=n; i++){ h[i] = H[i-1]; } h[0] = h[n+1] = INF2; for(int i=1; i<=n; i++){ pr[i] = pr[i-1]; if(h[i] < h[i+1] && h[i] < h[i-1]) pr[i]++; } } int dp[MAXN]; int max_towers(int L, int R, int D) { int l = L+1, r = R+1, d = D; if(l==r || l+1==r) return 1; for(int i=1; i<=n; i++){ pr[i] = pr[i-1]; if(h[i] < h[i+1] && h[i] < h[i-1]) pr[i]++; } int ANS = pr[r-1]-pr[l]; if(h[l] < h[l+1]) ANS++; if(h[r] < h[r-1]) ANS++; 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...