Submission #207779

#TimeUsernameProblemLanguageResultExecution timeMemory
207779mohamedsobhi777Jakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
398 ms262148 KiB
#include<bits/stdc++.h> using namespace std ; const int N = 3e5 + 7 ; int n , m ; int b[N] , p[N] , d[N]; vector<pair<int , int > > adj[N] ; int dijkstra() { memset(d , -1 , sizeof d) ; priority_queue<pair<int , int > > q ; q.push({0 , b[0]}) ; d[ b[0] ] = 0; while(q.size()) { int node = q .top().second ; int dist = -q.top().first ; q.pop(); for(auto u : adj[node]) { if(d[u.first]==-1 || dist + u.second < d[u.first]) { d[u.first] = dist + u.second ; q.push({-d[u.first] , u.first}) ; } } } return d[ b[1] ] ; } int main() { //freopen("in.in" , "r", stdin) ; cin>>n>>m ; for(int i = 0 ; i < N ;i++) b[i] = n; for(int i= 0 ; i < m ; i++) { int A , B; cin>>A>>B ; b[ i ] = A; if(!B) continue; for(int j = 0 ; j < n ; j++) { if(A==j) continue; if(j==A) continue; if(abs(A-j)%B==0) { adj[A].push_back({j , abs(A-j)/B}); } } } cout<<dijkstra(); return 0 ; }
#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...