Submission #450413

#TimeUsernameProblemLanguageResultExecution timeMemory
450413sobaJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1098 ms133752 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 30001; vector<pair<int,int> >v[N]; int b[N] , p[N] ; vector<pair<int,int> >vp; int n , m ; map<pair<int,int> , int>mp; int main() { int x , y; cin>> n>> m ; for(int i = 0 ; i < m ; i++) { cin >> b[i] >> p[i]; if(i==0)x=b[i]; if(i==1)y=b[i]; mp[{b[i],p[i]}]++; vp.push_back({b[i], p[i]}); } if(x==y) { cout << 0 ; return 0; } sort(vp.begin(),vp.end()); for(int i = 0 ; i < m ; i++) { int c=1; for(int j = vp[i].first+vp[i].second ; j< n ; j+= vp[i].second) { v[vp[i].first].push_back({j , c}); c++; if(mp[{j,vp[i].second}]) break; } } for(int i = m-1 ; i >=0 ; i--) { int c=1; for(int j = vp[i].first-vp[i].second ; j>=0 ; j-= vp[i].second) { v[vp[i].first].push_back({j , c}); c++; if(mp[{j,vp[i].second}]) break; } } int dist[N]; priority_queue<pair<int,int> >q; int processed[N]={0}; for (int i = 0; i <= n; i++) dist[i] = INT_MAX; dist[x] = 0; q.push({0,x}); while (!q.empty()) { int a = q.top().second; q.pop(); if (processed[a]) continue; processed[a] = 1; //cout << a << " : " ; for (auto u : v[a]) { int b = u.first, w = u.second; // cout << b << " "; if (dist[a]+w < dist[b]) { dist[b] = dist[a]+w; q.push({-dist[b],b}); } } //cout << "\n"; } if(dist[y]==INT_MAX) dist[y]=-1; cout << dist[y] ; return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:55:13: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
   55 |     dist[x] = 0;
      |     ~~~~~~~~^~~
skyscraper.cpp:76:16: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
   76 |         dist[y]=-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...