Submission #1234316

#TimeUsernameProblemLanguageResultExecution timeMemory
1234316dostsRadio Towers (IOI22_towers)C++20
14 / 100
256 ms1820 KiB
#include "towers.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
//#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, inf = 2e9,LIM = 2001;

vi h,pref;

int qry(int l,int r) {
  if (l > r) return 0;
  if(!l)return pref[r];
  return pref[r]-pref[l-1];
}

void init(int N, std::vector<int> H) {
  h = H;
  pref.resize(N);
  pref[0] = ((N==1)||(H[0]<H[1]));
  for (int i=1;i<N;i++) {
    pref[i] = pref[i-1]+(((i==N-1)||(H[i]<H[i+1]))&&(H[i]<H[i-1]));
  }
}

int max_towers(int L, int R, int D) {
  if (L == R) return 1;
  if (L == R-1) return 1;
  return (h[L]<h[L+1])+(h[R-1]>h[R])+qry(L+1,R-1);
}
#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...