Submission #100121

#TimeUsernameProblemLanguageResultExecution timeMemory
100121TadijaSebezJakarta Skyscrapers (APIO15_skyscraper)C++11
100 / 100
894 ms6256 KiB
#include <bits/stdc++.h> using namespace std; #define mp make_pair #define ll long long const int N=30050; const ll inf=1e18; ll dist[N]; vector<int> jump[N]; int my[N],p[N]; int main() { int n,m,i; scanf("%i %i",&n,&m); for(i=1;i<=m;i++) scanf("%i %i",&my[i],&p[i]),my[i]++,jump[my[i]].push_back(p[i]); for(i=1;i<=n;i++) dist[i]=inf; priority_queue<pair<ll,int>> pq; pq.push(mp(0,my[1])); dist[my[1]]=0; while(pq.size()) { ll d=-pq.top().first; int z=pq.top().second; pq.pop(); if(d!=dist[z]) continue; for(int j:jump[z]) { int cnt=1; for(int i=z+j;i<=n;i+=j) { if(dist[i]>dist[z]+cnt) { dist[i]=dist[z]+cnt; pq.push(mp(-dist[i],i)); } cnt++; } cnt=1; for(int i=z-j;i>=1;i-=j) { if(dist[i]>dist[z]+cnt) { dist[i]=dist[z]+cnt; pq.push(mp(-dist[i],i)); } cnt++; } } } if(dist[my[2]]==inf) printf("-1\n"); else printf("%lld\n",dist[my[2]]); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:13:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i %i",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~
skyscraper.cpp:14:55: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(i=1;i<=m;i++) scanf("%i %i",&my[i],&p[i]),my[i]++,jump[my[i]].push_back(p[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...