Submission #1019130

#TimeUsernameProblemLanguageResultExecution timeMemory
1019130amine_arouaJakarta Skyscrapers (APIO15_skyscraper)C++17
22 / 100
4 ms600 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { int n , m; cin>>n>>m; vector<vector<int>> p(n); vector<int> dist(n , LLONG_MAX); vector<bool> vis(n); queue<int> q; int trg = 0; for(int i = 0 ; i < m; i++) { int a , b; cin>>a>>b; if(i == 0) { dist[a] = 0; q.push(a); } if(i == 1) { trg = a; } p[a].push_back(b); } while(!q.empty()) { int tp = q.front(); q.pop(); if(vis[tp]) continue; vis[tp] = 1; for(auto P : p[tp]) { for(int k = 1 ; tp + k * P < n ; k++) { if(dist[k * P + tp] > dist[tp] + k) { dist[k * P + tp] = dist[tp] + k; q.push({k * P + tp}); } } for(int k = 1 ; tp - k * P >= 0 ; k++) { if(dist[tp - k * P] > dist[tp] + k) { dist[tp - k * P] = dist[tp] + k; q.push({tp - k * P}); } } } } cout<<(dist[trg] >= LLONG_MAX ? -1 : dist[trg]); }
#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...