제출 #744731

#제출 시각아이디문제언어결과실행 시간메모리
744731t6twotwo밀림 점프 (APIO21_jumps)C++17
21 / 100
4027 ms14492 KiB
#include "jumps.h" #include <bits/stdc++.h> using namespace std; int N; bool subtask1; vector<int> H, G; vector<vector<int>> adj; void init(int n, vector<int> h) { N = n, H = h; subtask1 = 1; for (int i = 0; i < N; i++) { H[i]--; if (i != H[i]) { subtask1 = 0; } } adj.resize(N); for (int i = 0; i < N; i++) { for (int j = i - 1; j >= 0; j--) { if (H[j] > H[i]) { adj[i].push_back(j); break; } } for (int j = i + 1; j < N; j++) { if (H[j] > H[i]) { adj[i].push_back(j); break; } } } } int minimum_jumps(int A, int B, int C, int D) { if (subtask1) { return C - B; } vector<int> dis(N, -1); queue<int> q; for (int i = A; i <= B; i++) { dis[i] = 0; q.push(i); } while (!q.empty()) { int x = q.front(); q.pop(); if (C <= x && x <= D) { return dis[x]; } for (int y : adj[x]) { if (dis[y] == -1) { dis[y] = dis[x] + 1; q.push(y); } } } return -1; }
#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...