Submission #1317995

#TimeUsernameProblemLanguageResultExecution timeMemory
1317995aris12345678밀림 점프 (APIO21_jumps)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; int n; vector<int> height; vector<vector<int>> adj; void init(int N, vector<int> H) { n = N; height = H; } int bfs(int start, int A, int B, int C, int D) { queue<pair<int, int>> q; // vector<bool> vis(n, false); q.push({start, 0}); int ans = INT_MAX; while(!q.empty()) { int u = q.front().first, value = q.front().second; q.pop(); // if(vis[u]) continue; // vis[u] = true; if(u >= C && u <= D) { ans = min(ans, value); continue; } if(u >= A && u <= B) value = 0; for(int i = 0; i < adj[u].size(); i++) q.push({adj[u][i], value+1}); } return ans; } int minimum_jumps(int A, int B, int C, int D) { adj.resize(n); for(int i = 0; i < n; i++) { for(int j = i-1; j >= 0; j--) { if(height[j] > height[i]) { adj[i].push_back(j); break; } } for(int j = i+1; j < n; j++) { if(height[j] > height[i]) { adj[i].push_back(j); break; } } } int pos = 0, mn = INT_MAX; for(int i = A; i <= B; i++) { if(mn > height[i]) mn = height[i], pos = i; } int ans = bfs(pos, A, B, C, D); if(ans == INT_MAX) return -1; return ans; } int main() { int N, Q; scanf("%d %d", &N, &Q); vector<int> H(N); for(int i = 0; i < N; i++) scanf("%d", &H[i]); init(N, H); while(Q--) { int A, B, C, D; scanf("%d %d %d %d", &A, &B, &C, &D); printf("%d\n", minimum_jumps(A, B, C, D)); } return 0; }

Compilation message (stderr)

jumps.cpp: In function 'int main()':
jumps.cpp:63:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |     scanf("%d %d", &N, &Q);
      |     ~~~~~^~~~~~~~~~~~~~~~~
jumps.cpp:66:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   66 |         scanf("%d", &H[i]);
      |         ~~~~~^~~~~~~~~~~~~
jumps.cpp:70:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |         scanf("%d %d %d %d", &A, &B, &C, &D);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/cc4Bo78A.o: in function `main':
stub.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc1kCiwt.o:jumps.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status