제출 #1366810

#제출 시각아이디문제언어결과실행 시간메모리
1366810mannshah1211송신탑 (IOI22_towers)C++20
0 / 100
138 ms1560 KiB
#include "towers.h"
#include <bits/stdc++.h>
#include <vector>

using namespace std;

vector<int> a;
int id;

void init(int n, vector<int> h) {
  a = h;
  for (int i = 0; i < n - 1; i++) {
    if (h[i] > h[i + 1]) {
      id = i;
      break;
    }
  }
}

int max_towers(int l, int r, int d) {
  int n = a.size();
  int ans = 0;
  if (r < id || l > id) {
    return 0;
  }
  {
    int low = 0, high = id - 1, idx = -1;
    while (low <= high) {
      int mid = (low + high) >> 1;
      if (a[id] - a[mid] >= d) {
        idx = mid;
        low = mid + 1;
      } else {
        high = mid - 1;
      }
    }
    // <= idx
    ans += max(idx - l + 1, 0);
  }
  {
    int low = id + 1, high = n - 1, idx = -1;
    while (low <= high) {
      int mid = (low + high) >> 1;
      if (a[mid] - a[id] >= d) {
        idx = mid;
        high = mid - 1;
      } else {
        low = mid + 1;
      }
    }
    ans += max(r - idx + 1, 0);
  }
  return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…