Submission #1238594

#TimeUsernameProblemLanguageResultExecution timeMemory
1238594k1r1t0Radio Towers (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...