Submission #671779

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

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;

    if (gp[u].size() > 0) dfs(gp[u][0]);
    if (gp[u].size() > 1) dfs(gp[u][1]);

    int x = (gp[u].size() > 0 ? dp[gp[u][0]] : 2e9);
    int y = (gp[u].size() > 1 ? dp[gp[u][1]] : 2e9);
    dp[u] = 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:17:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     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 4082 ms 17716 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 2 ms 208 KB Output is correct
6 Incorrect 3 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 2 ms 208 KB Output is correct
6 Incorrect 3 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 31 ms 12888 KB Output is correct
6 Correct 40 ms 15896 KB Output is correct
7 Correct 19 ms 7820 KB Output is correct
8 Correct 42 ms 15884 KB Output is correct
9 Correct 6 ms 2556 KB Output is correct
10 Correct 51 ms 15948 KB Output is correct
11 Correct 46 ms 22200 KB Output is correct
12 Correct 41 ms 18984 KB Output is correct
13 Incorrect 39 ms 20368 KB Output isn't correct
14 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 878 ms 7372 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 878 ms 7372 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 4082 ms 17716 KB Time limit exceeded
4 Halted 0 ms 0 KB -