제출 #25390

#제출 시각아이디문제언어결과실행 시간메모리
25390gabrielsimoesJakarta Skyscrapers (APIO15_skyscraper)C++14
22 / 100
3 ms2960 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> pii; typedef long long ll; const int MAXN = 3e4 + 100; const ll INF = ll(MAXN)*ll(MAXN); int N, M; vector<int> v[MAXN]; ll dp[MAXN]; ll f(int cur) { if (dp[cur] != -1) return dp[cur]; dp[cur] = INF; for (int dx : v[cur]) { int i = cur - dx*(cur/dx); do dp[cur] = min(dp[cur], f(i) + abs(cur - i)/dx); while ((i += dx) < N); } return dp[cur]; } int main() { scanf("%d %d", &N, &M); int X, Y; for (int i = 0,a,b; i < M; i++) { scanf("%d %d", &a, &b); if (i == 0) X = a; else if (i == 1) Y = a; if (b != 0) v[a].push_back(b); } memset(dp, -1, sizeof(dp)); dp[Y] = 0; ll ans = f(X); printf("%lld\n", ans < INF ? ans : -1); }

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

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:28:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &N, &M);
                        ^
skyscraper.cpp:31:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &a, &b);
                         ^
skyscraper.cpp:41:11: warning: 'Y' may be used uninitialized in this function [-Wmaybe-uninitialized]
  dp[Y] = 0;
           ^
skyscraper.cpp:29:6: warning: 'X' may be used uninitialized in this function [-Wmaybe-uninitialized]
  int X, Y;
      ^
#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...