Submission #671327

# Submission time Handle Problem Language Result Execution time Memory
671327 2022-12-12T20:42:18 Z YENGOYAN Rainforest Jumps (APIO21_jumps) C++17
4 / 100
913 ms 1048576 KB
#include "jumps.h"
#include <bits/stdc++.h>

using namespace std;

vector<int> l, r, h;
bool f = 1;
int n;

void calcDp(int u, vector<int> &dp, int c, int d){
    if(dp[u] != -1) return;
    if(u >= c && u <= d) {
        dp[u] = 0;
        return;
    }
    if(l[u] != -1 && r[u] != -1) {
        calcDp(l[u], dp, c, d);
        calcDp(r[u], dp, c, d);
        dp[u] = min(dp[l[u]], dp[r[u]]) + 1;
    }
    else if(l[u] != -1) {
        calcDp(l[u], dp, c, d);
        dp[u] = dp[l[u]] + 1;
    }
    else if(r[u] != -1){
        calcDp(r[u], dp, c, d);
        dp[u] = dp[r[u]] + 1;
    }
    else dp[u] = 1e9;
}


bool check(int n, int q){
    if(n <= 2000 && q <= 2000) return 1;
    if(q <= 5) return 1;
    return 1;
}

void init(int N, vector<int> H) {
    n = N, h = H;
    l = r = vector<int> (n, -1);
    for(int i = 0; i < n; i++) if(h[i] != i + 1) f = 0;
    if(f) return;
    stack<pair<int, int>> st;
    st.push({1e9, -1});
    for(int i = n - 1; i >= 0; i--){
        while(st.top().first < h[i]){
            st.pop();
        }
        r[i] = st.top().second;
        st.push({h[i], i});
    }
    while(st.size())st.pop();
    st.push({1e9, 1});
    for(int i = 0; i < n; i++){
        while(st.top().first < h[i]){
            st.pop();
        }
        l[i] = st.top().second;
        st.push({h[i], i});
    }
}

int minimum_jumps(int A, int B, int C, int D) {
    if(f) return C - B;
    vector<int> dp(n, -1);
    for(int i = A; i < B; i++) calcDp(i, dp, C, D);
    int ans = 2e9;
    for(int i = A; i < B; i++){
        ans = min(ans, dp[i]);
    }
    if(ans >= 1e9) return -1;
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 91 ms 3340 KB Output is correct
4 Correct 737 ms 4144 KB Output is correct
5 Correct 769 ms 2232 KB Output is correct
6 Correct 779 ms 4152 KB Output is correct
7 Correct 473 ms 2844 KB Output is correct
8 Correct 913 ms 4124 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 533 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 533 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 445 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Incorrect 370 ms 2072 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Incorrect 370 ms 2072 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 91 ms 3340 KB Output is correct
4 Correct 737 ms 4144 KB Output is correct
5 Correct 769 ms 2232 KB Output is correct
6 Correct 779 ms 4152 KB Output is correct
7 Correct 473 ms 2844 KB Output is correct
8 Correct 913 ms 4124 KB Output is correct
9 Runtime error 533 ms 1048576 KB Execution killed with signal 9
10 Halted 0 ms 0 KB -