Submission #566880

#TimeUsernameProblemLanguageResultExecution timeMemory
566880TurkhuuRainforest Jumps (APIO21_jumps)C++17
8 / 100
4053 ms1048576 KiB
#include "jumps.h" #include <bits/stdc++.h> using namespace std; const int inf = 1000000; int n; vector<int> a; vector<vector<int>> d; void init(int N, vector<int> H){ n = N; a = H; d.assign(n, vector(n, inf)); for(int i = 0; i < n; i++){ int l = i - 1; while(l >= 0 && a[l] <= a[i]){ l--; } if(l >= 0){ d[i][l] = 1; } int r = i + 1; while(r < n && a[r] <= a[i]){ r++; } if(r < n){ d[i][r] = 1; } } for(int k = 0; k < n; k++){ for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(d[i][k] + d[k][j] < d[i][j]){ d[i][j] = d[i][k] + d[k][j]; } } } } } int minimum_jumps(int A, int B, int C, int D){ int ans = inf; for(int i = A; i <= B; i++){ for(int j = C; j <= D; j++){ ans = min(ans, d[i][j]); } } if(ans == inf){ ans = -1; } return ans; }
#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...