Submission #1223464

#TimeUsernameProblemLanguageResultExecution timeMemory
1223464KALARRYRainforest Jumps (APIO21_jumps)C++20
Compilation error
0 ms0 KiB
//chockolateman #include<bits/stdc++.h> using namespace std; int n,l[200005],r[200005],a[200005]; void init(int N, std::vector<int> H) { for(int i = 1 ; i <= N ; i++) a[i] = H[i-1]; n = N; stack<int> order; order.push(N+1); for(int i = 1 ; i <= N ; i++) { while(H[i-1] > order.top()) order.pop(); l[a[i]] = order.top(); order.push(a[i]); } while(!order.empty()) order.pop(); order.push(N+1); for(int i = N ; i >= 1 ; i--) { while(H[i-1] > order.top()) order.pop(); r[a[i]] = order.top(); order.push(a[i]); } } int ans(long long v,long long targ) { if(v==targ) return 0; if(min(l[v],r[v]) > targ) return 1e9; long long res; if(max(l[v],r[v]) <= targ) res = ans(max(l[v],r[v]),targ) + 1; else res = ans(min(l[v],r[v]),targ) + 1; return res; } int minimum_jumps(int A, int B, int C, int D) { A++; B++; C++; D++; int ret = 1e9; for(int i = A ; i <= B ; i++) for(int j = C ; j <= D ; j++) { ret = min(ret,ans(a[i],a[j])); } if(ret > n) ret = -1; return ret; } int main() { int N, Q; assert(2 == scanf("%d %d", &N, &Q)); std::vector<int> H(N); for (int i = 0; i < N; ++i) { assert(1 == scanf("%d", &H[i])); } init(N, H); for (int i = 0; i < Q; ++i) { int A, B, C, D; assert(4 == scanf("%d %d %d %d", &A, &B, &C, &D)); printf("%d\n", minimum_jumps(A, B, C, D)); } return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccxpllrE.o: in function `main':
stub.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccXRoR2B.o:jumps.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status