Submission #535830

#TimeUsernameProblemLanguageResultExecution timeMemory
535830PoPularPlusPlusJakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
1095 ms41308 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define pb(e) push_back(e) #define sv(a) sort(a.begin(),a.end()) #define sa(a,n) sort(a,a+n) #define mp(a,b) make_pair(a,b) #define vf first #define vs second #define ar array #define all(x) x.begin(),x.end() const int inf = 0x3f3f3f3f; const int mod = 998244353; const double PI=3.14159265358979323846264338327950288419716939937510582097494459230; bool remender(ll a , ll b){return a%b;} //freopen("problemname.in", "r", stdin); //freopen("problemname.out", "w", stdout); void solve(){ int n , m1; cin >> n >> m1; vector<vector<int>> v(n); map<pair<int,int>,int> m; int dis[n]; memset(dis,0,sizeof dis); int s , e; for(int i = 0; i < m1; i++){ int b,p; cin >> b >> p; if(i == 0)s = b; v[b].pb(p); if(i == 1)e = b; } queue<array<int,3>> q; memset(dis,-1,sizeof dis); dis[s] = 0; for(int i : v[s]){ if(m[{s,i}] == 0){ m[{s,i}] = 1; array<int,3> lol = {s,i,0}; q.push(lol); } } while(q.size()){ array<int,3> p = q.front(); q.pop(); if(p[0] + p[1] < n && m[{p[0]+p[1] , p[1]}] == 0){ m[{p[0]+p[1] , p[1]}] = 1; array<int,3> lol = {p[0]+p[1],p[1],p[2]+1}; q.push(lol); if(dis[p[0]+p[1]] == -1){ dis[p[0]+p[1]] = p[2]+1; for(int i : v[p[0]+p[1]]){ if(m[{p[0]+p[1],i}]==0){ m[{p[0]+p[1],i}] = 1; array<int,3> again = {p[0]+p[1] , i , dis[p[0]+p[1]]}; q.push(again); } } } } if(p[0] - p[1] >=0 && m[{p[0]-p[1] , p[1]}] == 0){ m[{p[0]-p[1] , p[1]}] = 1; array<int,3> lol = {p[0]-p[1],p[1],p[2]+1}; q.push(lol); if(dis[p[0]-p[1]] == -1){ dis[p[0]-p[1]] = p[2]+1; for(int i : v[p[0]-p[1]]){ if(m[{p[0]-p[1],i}] == 0){ m[{p[0]-p[1],i}] = 1; array<int,3> again = {p[0]-p[1] , i , dis[p[0]-p[1]]}; q.push(again); } } } } } cout << dis[e] << '\n'; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); //int t;cin >> t;while(t--) solve(); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'void solve()':
skyscraper.cpp:80:20: warning: 'e' may be used uninitialized in this function [-Wmaybe-uninitialized]
   80 |  cout << dis[e] << '\n';
      |                    ^~~~
#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...