제출 #769288

#제출 시각아이디문제언어결과실행 시간메모리
769288Ahmed57Jakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
128 ms262144 KiB
#include <bits/stdc++.h> //#include "game.h" using namespace std; vector<long long> ind[30001]; long long len[30001]; long long n,m; long long nah; long long d(int b){ long long cost[n+1][n+1]; for(int i = 0;i<=n;i++)for(int j = 0;j<=n;j++)cost[i][j] = 1e18; priority_queue<pair<long long,pair<long long,long long>>> q1; q1.push({0,{len[0],b}}); cost[len[0]][b] = 0; while(!q1.empty()){ long long co = q1.top().first*-1; long long lin = q1.top().second.first; long long indx = q1.top().second.second; //cout<<lin<<" "<<indx<<"\n"; q1.pop(); if(co>cost[lin][indx]) continue ; for(auto i:ind[indx]){ if(cost[len[i]][indx]>(cost[lin][indx])){ cost[len[i]][indx] = (cost[lin][indx]); q1.push({cost[len[i]][indx]*-1,{len[i],indx}}); } } if(indx+lin>=0&&indx+lin<n){ if(cost[lin][indx+lin]>(cost[lin][indx]+1)){ cost[lin][indx+lin] = (cost[lin][indx]+1); q1.push({cost[lin][indx+lin]*-1,{lin,indx+lin}}); } } if(indx-lin>=0&&indx-lin<n){ if(cost[lin][indx-lin]>(cost[lin][indx]+1)){ cost[lin][indx-lin] = (cost[lin][indx]+1); q1.push({cost[lin][indx-lin]*-1,{lin,indx-lin}}); } } } long long ans = 1e18; for(int i = 1;i<=n;i++){ ans = min(ans,cost[i][nah]); } return ans; } int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); cin>>n>>m; long long z; for(int i = 0;i<m;i++){ long long x,b; cin>>x>>b; b = min(b,n); if(i==1)nah = x; if(i==0)z = x; len[i] = b; ind[x].push_back(i); } //cout<<z<<" "<<nah<<"\n"; long long val = d(z); if(val==1e18)cout<<-1<<"\n"; else cout<<val<<"\n"; }

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

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:60:22: warning: 'z' may be used uninitialized in this function [-Wmaybe-uninitialized]
   60 |     long long val = d(z);
      |                     ~^~~
#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...