제출 #935429

#제출 시각아이디문제언어결과실행 시간메모리
935429tamir1Jakarta Skyscrapers (APIO15_skyscraper)C++17
10 / 100
1 ms1116 KiB
#include<bits/stdc++.h> #define ll long long #define ff first #define ss second using namespace std; ll n,m,i,j,dist[30005],b,p,x,y,R; vector<ll> v[30005]; bitset<30005> vis; set<pair<ll,ll>> q; int main(){ cin >> n >> m; for(i=0;i<m;i++){ cin >> b >> p; v[b].push_back(p); if(i==0) q.insert({0,b}); if(i==1) R=b; } while(!q.empty()){ pair<ll,ll> z=*q.begin(); x=z.ss; y=z.ff; q.erase(q.begin()); if(vis[x]) continue; dist[x]=-y; vis[x]=1; for(ll i:v[x]){ p=0; for(b=x+i;b<n;b+=i){ p++; if(!vis[b]) q.insert({y-p,b}); } p=0; for(b=x-i;b>=0;b-=i){ p++; if(!vis[b]) q.insert({y-p,b}); } } } if(vis[R]) cout << dist[R]; else 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...