제출 #936509

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