Submission #784958

#TimeUsernameProblemLanguageResultExecution timeMemory
784958thimote75Radio Towers (IOI22_towers)C++17
0 / 100
4006 ms1360 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) {
  idata dp(nbTowers, 0);

  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] + 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...