Submission #335258

#TimeUsernameProblemLanguageResultExecution timeMemory
335258hivakaramiJakarta Skyscrapers (APIO15_skyscraper)C++14
100 / 100
899 ms3808 KiB
#include<bits/stdc++.h> using namespace std; typedef long long int ll; typedef long double doublel; #define f first #define s second const int N = 3e4 + 100; const ll mod = 1e9 + 9; const int inf = 1e8; int dis[N]; vector<int> adj[N]; priority_queue<pair<int, int>> q; int main() { ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0); int n, m, z, y; scanf("%d %d", &n, &m); for(int i = 0; i < m; i++) { int p, b; scanf("%d %d", &b, &p); adj[b].push_back(p); if(i == 0) z = b; else if(i == 1) y = b; } for(int i = 0; i < n; i++) dis[i] = inf; dis[z] = 0; q.push({0, z}); while(!q.empty()) { int x = q.top().s; q.pop(); for(auto p : adj[x]) { int c = 1; for(int i = x+p; i < n; i += p) { if(dis[i] > dis[x] + c) { dis[i] = dis[x] + c; if(y != i) q.push({-dis[i], i}); } c++; } c = 1; for(int i = x-p; i >= 0; i -= p) { if(dis[i] > dis[x] + c) { dis[i] = dis[x] + c; if(y != i) q.push({-dis[i], i}); } c++; } } } if(dis[y] >= inf) dis[y] = -1; printf("%d \n", dis[y]); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   23 |  scanf("%d %d", &n, &m);
      |  ~~~~~^~~~~~~~~~~~~~~~~
skyscraper.cpp:28:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   28 |   scanf("%d %d", &b, &p);
      |   ~~~~~^~~~~~~~~~~~~~~~~
skyscraper.cpp:22:12: warning: 'z' may be used uninitialized in this function [-Wmaybe-uninitialized]
   22 |  int n, m, z, y;
      |            ^
skyscraper.cpp:79:8: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
   79 |  printf("%d \n", dis[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...