Submission #42146

#TimeUsernameProblemLanguageResultExecution timeMemory
42146XmtosXJakarta Skyscrapers (APIO15_skyscraper)C++14
57 / 100
1077 ms4856 KiB
#include <bits/stdc++.h> using namespace std; short int n,p[30004],b[30004],m; priority_queue <pair<short int,short int> ,vector <pair<short int,short int> >,greater <pair<short int,short int> > > pq; bool vis[30004]; vector <int> v[30004]; set<int> s[30005]; set <int>::iterator it; short int cur[30004]; void dij() { for (int i=0;i<n;i++) cur[i]=32000; cur[b[0]]=0; pq.push({0,b[0]}); while (!pq.empty()) { short int x= (pq.top()).second; short int y= (pq.top()).first; pq.pop(); if (vis[x]) continue; vis[x]=true; if (x==b[1]) return; for (short int i=0;i<v[x].size();i++) { for (int j=1;j*v[x][i]+x<n||(x-j*v[x][i])>=0;j++) { int a= (j*v[x][i]+x); if (a<n) { if (!vis[a]&&cur[a]>y+j&&!v[a].empty()) { cur[a]=y+j; pq.push({cur[a],a}); } } a= (x-j*v[x][i]); if (a>=0) { if (!vis[a]&&cur[a]>y+j&&!v[a].empty()) { cur[a]=y+j; pq.push({cur[a],a}); } } } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >>n>>m; for (int i=0;i<m;i++) { cin >>b[i]>>p[i]; s[b[i]].insert(p[i]); } for (int i=0;i<n;i++) { while (!s[i].empty()) { v[i].push_back(*s[i].begin()); s[i].erase(s[i].begin()); } } dij(); if (!vis[b[1]]) cout <<-1; else cout <<cur[b[1]]; return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'void dij()':
skyscraper.cpp:26:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (short int i=0;i<v[x].size();i++)
                             ^
#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...