Submission #954782

#TimeUsernameProblemLanguageResultExecution timeMemory
954782BbtTJakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
1 ms440 KiB
#include<bits/stdc++.h> using namespace std; struct edge{ int n,w; }; bool operator<(edge a,edge b){ return a.w<b.w; } int main(){ int N,M; cin>>N>>M; vector<vector<edge>> edges(N); for(int i=0;i<M;i++){ int b,p; scanf("%d%d",&b,&p); vector<edge> temp; for(int j=b-p;j>=0;j-=p)temp.push_back((edge){j,(b-j)/p}); for(int j=b+p;j<N;j+=p)temp.push_back((edge){j,(j-b)/p}); edges.push_back(temp); edges[b].push_back((edge){edges.size()-1,0}); } bitset<30005> vis; priority_queue<edge> pq; vis[0]=1; pq.push((edge){0,0}); while(!pq.empty()){ edge cur_edge=pq.top(); pq.pop(); vis[cur_edge.n]=1; if(cur_edge.n==1){ cout<<cur_edge.w<<endl; return 0; } for(auto togo: edges[cur_edge.n]){ if(vis[togo.n])continue; pq.push((edge){togo.n,cur_edge.w+togo.w}); } } cout<<-1<<endl; return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:25:47: warning: narrowing conversion of '(edges.std::vector<std::vector<edge> >::size() - 1)' from 'std::vector<std::vector<edge> >::size_type' {aka 'long unsigned int'} to 'int' [-Wnarrowing]
   25 |         edges[b].push_back((edge){edges.size()-1,0});
      |                                   ~~~~~~~~~~~~^~
skyscraper.cpp:20:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |         scanf("%d%d",&b,&p);
      |         ~~~~~^~~~~~~~~~~~~~
#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...