Submission #1238594

#TimeUsernameProblemLanguageResultExecution timeMemory
1238594k1r1t0송신탑 (IOI22_towers)C++20
14 / 100
257 ms1828 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 110000; const int INF = (int)(1e9+1); int n, h[N], p[N], opt; void init(int N, vector<int> H) { n = N; for (int i = 1; i <= n; i++) h[i] = H[i - 1]; h[0] = h[n + 1] = INF; for (int i = 1; i <= n; i++) { p[i] = p[i - 1]; if (h[i - 1] > h[i] && h[i] < h[i + 1]) p[i]++; } } int max_towers(int L, int R, int D) { L++; R++; if (L == R) return 1; int ans = p[R] - p[L - 1]; if (h[L - 1] < h[L] && h[L] < h[L + 1]) ans++; if (h[R - 1] > h[R] && h[R] > h[R + 1]) ans++; return ans; } /* int main() { int N, Q; assert(2 == scanf("%d %d", &N, &Q)); std::vector<int> H(N); for (int i = 0; i < N; ++i) { assert(1 == scanf("%d", &H[i])); } init(N, H); for (int i = 0; i < Q; ++i) { int L, R, D; assert(3 == scanf("%d %d %d", &L, &R, &D)); printf("%d\n", max_towers(L, R, D)); } return 0; } //*/
#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...