Submission #1028550

#TimeUsernameProblemLanguageResultExecution timeMemory
1028550vjudge1Jakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
1068 ms77576 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int const N=3e4+5; int const inf=1e9+7; vector<int> sky[N]; int pw[N]; int pos[N]; set<pair<int,int>> vis; int main(){ int n,m; cin>>n>>m; for (int i = 0; i < m; ++i){ cin>>pos[i]>>pw[i]; sky[pos[i]].push_back(pw[i]); } int tar=pos[1]; vector<int> in; in.push_back(pos[0]); vis.insert({pos[0],pw[0]}); int cur=0; while(in.size()){ vector<pair<int,int>> upd; for(int c:in){ // cout<<"sky := "<<c<<endl; if(c==tar){ cout<<cur<<endl; return 0; } for(int p:sky[c]){ // cout<<p<<' '; if(c+p<n) upd.push_back({c+p,p}); if(c-p>=0) upd.push_back({c-p,p}); } // cout<<endl; sky[c].clear(); } in.clear(); // cout<<"Upd"<<endl; for(auto [s,p]:upd){ if(vis.find({s,p})!=vis.end()) continue; // cout<<s<<' '<<p<<endl; vis.insert({s,p}); sky[s].push_back(p); in.push_back(s); } cur++; // cout<<"next"<<endl; } cout<<-1<<endl; return 0; }
#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...