제출 #328512

#제출 시각아이디문제언어결과실행 시간메모리
328512negar_aJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1097 ms9324 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") #pragma GCC optimize ("unroll-loops") using namespace std; typedef long long ll; typedef long double ld; #define pb push_back #define mp make_pair #define pii pair <int, int> #define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define F first #define S second const int maxn = 3e5 + 10; int n, m; int inf = 1e9; int b[maxn], p[maxn]; vector <int> adj[maxn]; int dis[maxn]; int main(){ fast_io; scanf("%d%d", &n, &m); for(int i = 0; i < m; i ++){ scanf("%d%d", b + i, p + i); adj[b[i]].pb(i); } for(int i = 0; i <= m; i ++){ dis[i] = inf; } set <pii> s; s.insert({0, 0}); while(s.size()){ int x = s.begin() -> S; int w = s.begin() -> F; s.erase(s.begin()); // cout << "x : " << x << endl; if(dis[x] >= w){ dis[x] = w; for(int i = b[x]; i <= n; i += p[x]){ int d = abs(i - b[x]); if(d % p[x] == 0){ for(int u : adj[i]){ if(dis[u] > dis[x] + (d / p[x])){ // cout << "ii : " << i << " | " << d << " : " << d / p[x] << endl; s.erase({dis[u], u}); dis[u] = dis[x] + (d / p[x]); s.insert({dis[u], u}); } } } } for(int i = b[x]; i >= 0; i -= p[x]){ int d = abs(i - b[x]); if(d % p[x] == 0){ for(int u : adj[i]){ if(dis[u] > dis[x] + (d / p[x])){ // cout << "ii : " << i << " | " << d << " : " << d / p[x] << endl; s.erase({dis[u], u}); dis[u] = dis[x] + (d / p[x]); s.insert({dis[u], u}); } } } } } } if(dis[1] != inf){ printf("%d", dis[1]); }else{ printf("%d", -1); } return 0; }

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

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