Submission #539039

#TimeUsernameProblemLanguageResultExecution timeMemory
539039SlavicGJakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
9 ms14408 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define forn(i,n) for(int i=0;i<n;i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(),v.rend() #define pb push_back #define sz(a) (int)a.size() const int N = 3e5 + 10; vector<pair<int, int>> adj[N]; vector<int> dog[N]; void solve() { int n, m; cin >> n >> m; vector<int> b(m), p(m); for(int i = 0;i < m; ++i) { cin >> b[i] >> p[i]; dog[b[i]].pb(i); } priority_queue<pair<int,int>> q; vector<int> dist(m, INT_MAX); dist[0] = 0; q.push({0, 0}); while(!q.empty()) { int u = q.top().second; q.pop(); int pp = b[u]; int jumps = 0; for(int v: dog[pp]) { for(int v: dog[pp]) { if(dist[v] > dist[u] + jumps) { dist[v] = dist[u] + jumps; q.push({-dist[v], v}); } } } while(pp + p[u] < n) { pp += p[u]; ++jumps; for(int v: dog[pp]) { if(dist[v] > dist[u] + jumps) { dist[v] = dist[u] + jumps; q.push({-dist[v], v}); } } } pp = b[u], jumps = 0; while(pp - p[u] >= 0) { pp -= p[u]; ++jumps; for(int v: dog[pp]) { if(dist[v] > dist[u] + jumps) { dist[v] = dist[u] + jumps; q.push({-dist[v], v}); } } } } cout << dist[1] << "\n"; } int32_t main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t = 1; //cin >> t; while(t--) { solve(); } }

Compilation message (stderr)

skyscraper.cpp: In function 'void solve()':
skyscraper.cpp:36:17: warning: unused variable 'v' [-Wunused-variable]
   36 |         for(int v: dog[pp]) {
      |                 ^
#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...