제출 #679335

#제출 시각아이디문제언어결과실행 시간메모리
679335Cross_RatioCrocodile's Underground City (IOI11_crocodile)C++14
100 / 100
496 ms75028 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; const int INF = 2e9; int N, M, K; vector<vector<array<int, 2>>> adj; int E[1000005][3]; bool on[100005]; int dis[100005][2]; typedef pair<int,int> P; bool vis[100005]; int travel_plan(int _N, int _M, int _R[][2], int _L[], int _K, int _P[]) { N = _N, M = _M, K = _K; adj.resize(N); int i, j; for(i=0;i<M;i++) { E[i][0] = _R[i][0], E[i][1] = _R[i][1]; E[i][2] = _L[i]; } for(i=0;i<M;i++) { adj[E[i][0]].push_back({E[i][1], E[i][2]}); adj[E[i][1]].push_back({E[i][0], E[i][2]}); } for(i=0;i<K;i++) { on[_P[i]] = true; } for(i=0;i<N;i++) dis[i][0] = dis[i][1] = INF; priority_queue<P, vector<P>, greater<P>> PQ; for(i=0;i<N;i++) { if(on[i]) { dis[i][0] = dis[i][1] = 0; PQ.push(P(dis[i][1], i)); } } while(!PQ.empty()) { P k = PQ.top(); PQ.pop(); int id = k.second; if(vis[id]) continue; vis[id] = true; for(auto it : adj[id]) { int d = dis[id][1] + it[1]; int n = it[0]; if(dis[n][0] >= d) { dis[n][1] = dis[n][0]; dis[n][0] = d; PQ.push(P(dis[n][1], n)); } else if(dis[n][1] > d) { dis[n][1] = d; PQ.push(P(dis[n][1], n)); } } } return dis[0][1]; }

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

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:15:12: warning: unused variable 'j' [-Wunused-variable]
   15 |     int i, j;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...