Submission #784978

#TimeUsernameProblemLanguageResultExecution timeMemory
784978thimote75Radio Towers (IOI22_towers)C++17
23 / 100
4096 ms1460 KiB
#include "towers.h"

#include <bits/stdc++.h>
using namespace std;

using idata = vector<int>;

idata heights;
int nbTowers;

void init(int N, idata H) {
  nbTowers = N;
  heights = H;
}

int max_towers(int L, int R, int D) {
  int curr  = L; bool middle = false;
  int count = 1;
  for (int local = L + 1; local <= R; local ++) {
    if (middle) {
      if (heights[curr] >= heights[local] + D) {
        curr   = local;
        middle = false;
        count ++;
      } else if (heights[local] > heights[curr]) curr = local;
    } else {
      if (heights[local] >= heights[curr] + D) {
        curr = local;
        middle = true;
      } else if (heights[local] < heights[curr]) curr = local;
    }
  }

  return count;
}
#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...