제출 #375705

#제출 시각아이디문제언어결과실행 시간메모리
375705AlmaJakarta Skyscrapers (APIO15_skyscraper)C++14
10 / 100
1 ms384 KiB
#include <iostream> #include <cmath> #include <vector> #include <algorithm> using namespace std; vector<vector<pair<int, int>>> position; vector<int> DP; int minimumJumps (int l, int r, int idx, vector<bool> & visited, int jumps) { // base case if (DP[idx] != -1) { return DP[idx]; } visited[idx] = true; // visit all posible conections for (auto conx: position[idx]) { int doge = conx.first, p = conx.second; if (p == 0) { continue; } // to the left int left = idx - p; for (int i = 1; l <= left; i++) { if (!position[left].empty() && !visited[left]) { jumps = min(jumps, i + minimumJumps(l, r, left, visited, jumps)); } left -= p; } // to the right int right = idx + p; for (int i = 1; right <= r; i++) { if (!position[right].empty() && !visited[right]) { jumps = min(jumps, i + minimumJumps(l, r, right, visited, jumps)); } right += p; } } // build the DP return DP[idx] = jumps; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, m, x, p, answer, pos0; cin >> n >> m; position.assign(n, vector<pair<int, int>>()); DP.assign(n, -1); vector<bool> visited(n, false); // doge 0 cin >> x >> p; position[x].push_back(make_pair(0, p)); pos0 = x; // doge 1 cin >> x >> p; position[x].push_back(make_pair(1, p)); DP[x] = 0; // other doges m -= 2; for (int i = 0; i < m; i++) { cin >> x >> p; position[x].push_back(make_pair(i, p)); } // call function answer = minimumJumps(0, n-1, pos0, visited, 2e9); if (answer == 2e9) { cout << "-1\n"; } else { cout << answer << '\n'; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int minimumJumps(int, int, int, std::vector<bool>&, int)':
skyscraper.cpp:18:13: warning: unused variable 'doge' [-Wunused-variable]
   18 |         int doge = conx.first, p = conx.second;
      |             ^~~~
#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...