Submission #95530

#TimeUsernameProblemLanguageResultExecution timeMemory
95530MohamedAhmed0Jakarta Skyscrapers (APIO15_skyscraper)C++14
0 / 100
2 ms504 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 2010 ; int visited[MAX] ; pair<int , int>arr[MAX] ; vector< vector<int> >now(MAX) ; int main() { int n , m ; cin>>n>>m ; for(int i = 0 ; i < m ; ++i) { cin>>arr[i].first>>arr[i].second; now[arr[i].first].push_back(i); } priority_queue< pair<int , int> , vector< pair<int , int> > , greater< pair<int , int> > >q ; q.push({0 , arr[0].first}); while(!q.empty()) { pair<int , int>p = q.top() ; q.pop() ; int dist = p.first , idx = p.second ; if(idx == 1) return cout<<dist<<"\n" , 0 ; if(visited[idx]) continue; visited[idx] = 1 ; for(auto &i : now[idx]) { int cnt = 0 ; for(int j = idx+arr[i].second ; j < n ; j += arr[i].second) cnt++ , q.push({dist+cnt , j}); cnt = 0 ; for(int j = idx - arr[i].second ; j >= 0 ; j -= arr[i].second) cnt++ , q.push({dist + cnt , j}); } } return cout<<-1<<"\n" , 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...