Submission #671776

# Submission time Handle Problem Language Result Execution time Memory
671776 2022-12-13T20:15:45 Z Vahe Rainforest Jumps (APIO21_jumps) C++17
0 / 100
4000 ms 22132 KB
#include "jumps.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
using namespace std;
int n;
vector<int> h, pge, nge, dp;
vector<vector<int>> gp;
int a, b, c, d;

vector<int> pge_(vector<int> v)
{
    vector<int> tmp(v.size());
    stack<int> s;
    s.push(0);
    tmp[0] = -1;
    for (int i = 1; i < v.size(); i++)
    {
        while (!s.empty() && v[s.top()] < v[i]) s.pop();
        tmp[i] = (s.empty() ? -1 : s.top());
    }
    return tmp;
}

vector<int> nge_(vector<int> v)
{
    stack<int> s;
    vector<int> tmp(v.size(), -1);
    for (int i = 0; i < n; i++)
    {
        while (!s.empty() && v[s.top()] < v[i]) tmp[s.top()] = i, s.pop();
        s.push(i);
    }
    return tmp;
}

void dfs(int u)
{
    if (u >= c && u <= d) { dp[u] = 0; return; }
    if (dp[u] != 2e9) return;

    int x = 2e9, y = 2e9;
    if (!gp[u].empty()   ) dfs(gp[u][0]), x = dp[gp[u][0]];
    if ( gp[u].size() > 1) dfs(gp[u][1]), y = dp[gp[u][1]];

    dp[u] = min(int(2e9), min(x, y) + 1);
}

void init(int N, vector<int> H)
{
    n = N;
    h = H;
    pge = pge_(H);
    nge = nge_(H);
    gp = vector<vector<int>>(n);
    for (int i = 0; i < n; i++)
    {
        if (pge[i] != -1) gp[i].push_back(pge[i]);
        if (nge[i] != -1) gp[i].push_back(nge[i]);
    }
}

int minimum_jumps(int A, int B, int C, int D)
{
    a = A, b = B, c = C, d = D;
    dp = vector<int>(n, 2e9);
    int mn = 2e9;
    for (int i = a; i <= b; i++) dfs(i), mn = min(mn, dp[i]);
    return (mn == 2e9 ? -1 : mn);
}

Compilation message

jumps.cpp: In function 'std::vector<int> pge_(std::vector<int>)':
jumps.cpp:18:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for (int i = 1; i < v.size(); i++)
      |                     ~~^~~~~~~~~~
# 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 Execution timed out 4019 ms 17724 KB Time limit exceeded
4 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 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 2 ms 208 KB Output isn't correct
7 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 Correct 0 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 2 ms 208 KB Output isn't correct
7 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 Correct 0 ms 208 KB Output is correct
5 Correct 36 ms 12848 KB Output is correct
6 Correct 59 ms 15896 KB Output is correct
7 Correct 18 ms 7820 KB Output is correct
8 Correct 44 ms 15944 KB Output is correct
9 Correct 7 ms 2548 KB Output is correct
10 Correct 43 ms 15880 KB Output is correct
11 Correct 49 ms 22132 KB Output is correct
12 Execution timed out 4096 ms 19060 KB Time limit exceeded
13 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 884 ms 7484 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 884 ms 7484 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 Execution timed out 4019 ms 17724 KB Time limit exceeded
4 Halted 0 ms 0 KB -