Submission #1307473

#TimeUsernameProblemLanguageResultExecution timeMemory
1307473repmannRainforest Jumps (APIO21_jumps)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
int N;
int A[200001];
int MAX[18][200001], MIN[18][200001];
void init(int n, int[] a)
{
  N = n;
  for(int i = 1; i <= N; i++) A[i] = a[i - 1];
  stack <pair <int, int>> S;
  for(int i = 1; i <= N; i++)
  {
    while(S.size() && (S.top().first < A[i])) S.pop();
    if(S.size()) MIN[0][i] = S.top().second;
    S.push({A[i], i});
  }
  while(S.size()) S.pop();
  for(int i = N; i >= 1; i--)
  {
    while(S.size() && (S.top().first < A[i])) S.pop();
    if(S.size()) MAX[0][i] = S.top().second;
    S.push({A[i], i});
  }
  for(int i = 1; i <= N; i++) if(A[MIN[0][i]] > A[MAX[0][i]]) swap(MIN[0][i], MAX[0][i]);
  vector <pair <int, int>> V;
  for(int i = 1; i <= N; i++) V.push_back({A[i], i});
  sort(V.begin(), V.end(), greater <pair <int, int>>());
  for(pair <int, int> p : V)
  {
    int i = p.second;
    for(int j = 1; j <= 17; j++) MIN[j][i] = MIN[j - 1][MIN[j - 1][i]];
    for(int j = 1; j <= 17; j++) MAX[j][i] = MAX[j - 1][MAX[j - 1][i]];
  }
  return;
}
int minimum_jumps(int a, int b, int c, int d)
{
  if((a != b) || (c != d)) return -1;
  a++, b++, c++, d++;
  if(min(MIN[0][c], MAX[0][c]) >= a) return -1;
  int ret = 0;
  for(int j = 17; j >= 0; j--) if(MAX[j][a] && (A[MAX[j][a]] <= A[c])) {a = MAX[j][a]; ret += 1 << j;}
  for(int j = 17; j >= 0; j--) if(MAX[j][a] && (A[MIN[j][a]] <= A[c])) {a = MIN[j][a]; ret += 1 << j;}
  return ret;
}

Compilation message (stderr)

jumps.cpp:6:24: error: expected ',' or '...' before 'a'
    6 | void init(int n, int[] a)
      |                        ^
jumps.cpp: In function 'void init(int, int*)':
jumps.cpp:9:38: error: 'a' was not declared in this scope
    9 |   for(int i = 1; i <= N; i++) A[i] = a[i - 1];
      |                                      ^