Submission #1312689

#TimeUsernameProblemLanguageResultExecution timeMemory
1312689paulllolJakarta Skyscrapers (APIO15_skyscraper)C++20
36 / 100
1070 ms327680 KiB
#include<bits/stdc++.h> using namespace std; int n,m,a,b,x,y; bool vs[30001],vss[30001]; vector<pair<int,int>> v[30001]; priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq; int main(){ cin.tie(NULL)->sync_with_stdio(false); cin>>n>>m; for(int i=0;i<m;i++){ cin>>a>>b; v[a].emplace_back(make_pair(b,i)); vs[a]=1; if(i==0){ x=a; } else if(i==1){ y=a; } } pq.emplace(make_pair(0,x)); while(!pq.empty()){ a=pq.top().first; b=pq.top().second; pq.pop(); if(b==y){ cout<<a; return 0; } for(int i=0;i<v[b].size();i++){ if(vss[v[b][i].second]==0){ vss[v[b][i].second]=1; for(int j=1;true;j++){ if(b+j*v[b][i].first>=n){ break; } if(vs[b+j*v[b][i].first]==1){ pq.emplace(make_pair(a+j,b+j*v[b][i].first)); } } for(int j=1;true;j++){ if(b-j*v[b][i].first<0){ break; } if(vs[b-j*v[b][i].first]==1){ pq.emplace(make_pair(a+j,b-j*v[b][i].first)); } } } } } cout<<"-1"; }
#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...