제출 #1310921

#제출 시각아이디문제언어결과실행 시간메모리
1310921paulllolJakarta Skyscrapers (APIO15_skyscraper)C++20
57 / 100
268 ms4700 KiB
#include<bits/stdc++.h> using namespace std; bool vs[30001]; short n,m,a,b,s0,s1,cnt; vector<short> z[30001]; priority_queue<pair<short,short>,vector<pair<short,short>>,greater<pair<short,short>>> pq; int main(){ cin.tie(NULL)->sync_with_stdio(false); cin>>n>>m; for(short i=0;i<m;i++){ cin>>a>>b; z[a].emplace_back(b); if(i==0){ s0=a; } if(i==1){ s1=a; } } pq.emplace(make_pair(0,s0)); while(!pq.empty()){ a=pq.top().first; b=pq.top().second; pq.pop(); if(vs[b]==0){ vs[b]=1; if(b==s1){ cout<<a; return 0; } for(short i=0;i<z[b].size();i++){ cnt=1; for(short j=b+z[b][i];j<n;j+=z[b][i]){ if(vs[j]==0){ pq.emplace(make_pair(a+cnt,j)); } cnt+=1; } cnt=1; for(short j=b-z[b][i];j>=0;j-=z[b][i]){ if(vs[j]==0){ pq.emplace(make_pair(a+cnt,j)); } cnt+=1; } } } } 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...