제출 #83334

#제출 시각아이디문제언어결과실행 시간메모리
83334farukkastamonudaJakarta Skyscrapers (APIO15_skyscraper)C++14
100 / 100
233 ms66236 KiB
#include <bits/stdc++.h> #define li 30005 #define inf 2000001000 #define md 1000000007 #define lo long long #define fi first #define se second #define mp make_pair #define pb push_back #define ii pair<lo int,lo int> using namespace std; int n,m,B[li],P[li],dist[li]; set<int> S[li]; vector< pair<int,int> > v[li]; int vis[li]; priority_queue< pair<int,int> > q; void bfs(){ for(int i=0;i<n;i++) dist[i]=inf; q.push(mp(0,B[0])); dist[B[0]]=0; while(!q.empty()){ ii temp=q.top(); q.pop(); int seh=temp.se; int cst=-temp.fi; if(dist[seh]<cst) continue; for(int i=0;i<(int)v[seh].size();i++){ int go=v[seh][i].fi; int para=v[seh][i].se; if(dist[go]>dist[seh]+para){ dist[go]=dist[seh]+para; q.push(mp(-(dist[go]),go)); } } } } int main(){ scanf("%d %d",&n,&m); for(int i=0;i<m;i++){ scanf("%d %d",&B[i],&P[i]); S[B[i]].insert(P[i]); } for(int i=0;i<n;i++){ for(auto e:S[i]){ for(int j=i+e;j<n;j+=e){ v[i].pb(mp(j,(j-i)/e)); if(S[j].lower_bound(e)!=S[j].end() && *S[j].lower_bound(e)==e) break; } } } for(int i=0;i<n;i++){ for(auto e:S[i]){ for(int j=i-e;j>=0;j-=e){ v[i].pb(mp(j,(i-j)/e)); if(S[j].lower_bound(e)!=S[j].end() && *S[j].lower_bound(e)==e) break; } } } bfs(); if(dist[B[1]]==inf) printf("-1\n"); else printf("%d\n",dist[B[1]]); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:38:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~
skyscraper.cpp:40:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&B[i],&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...