제출 #853016

#제출 시각아이디문제언어결과실행 시간메모리
853016aymanrsJakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
1055 ms1884 KiB
#include<bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx,avx2,bmi,bmi2,popcnt,lzcnt") using namespace std; void solve(){ int n, m; cin >> n >> m; int b[m], p; vector<int> h[n]; for(int i = 0;i < m;i++){ cin >> b[i] >> p; h[b[i]].push_back(p); } int d[n]; bool v[n] = {false}; for(int i = 0;i < n;i++) if(i!=b[0])d[i] = INT_MAX; d[b[0]] = 0; while(true){ int mi = INT_MAX, wi = -1; for(int i = 0;i < n;i++){ if(!v[i] && d[i] < mi){ mi = d[i]; wi = i; } } if(wi==-1)break; v[wi] = true; for(int u : h[wi]){ for(int j = wi+u,c=1;j < n;j += u,c++) d[j] = min(d[j], d[wi]+c); for(int j = wi-u,c=1;j >= 0;j -= u,c++) d[j] = min(d[j], d[wi]+c); } } if(d[b[1]] == INT_MAX) cout << "-1\n"; else cout << d[b[1]] << '\n'; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); solve(); }
#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...