제출 #308563

#제출 시각아이디문제언어결과실행 시간메모리
308563kylych03악어의 지하 도시 (IOI11_crocodile)C++14
100 / 100
949 ms59768 KiB
#include "crocodile.h" #include <bits/stdc++.h> //#include "grader.cpp" using namespace std; vector <pair <int, int > > g[100002]; int inf =1e9+7; pair <int, int> a[100001]; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for(int i = 0; i <= N; i++){ a[i].first=inf; a[i].second=inf; } set <pair <int, int> > st; set <pair <int, int> > ::iterator it; for(int i = 0 ; i < M ;i++){ g[R[i][0]].push_back(make_pair (R[i][1], L[i]) ); g[R[i][1]].push_back( make_pair (R[i][0], L[i])); } for(int i = 0; i < K; i++){ st.insert(make_pair(0,P[i])); a[P[i]].first=0; a[P[i]].second=0; } while(!st.empty()){ it = st.begin(); int len = it->first; int v = it -> second; st.erase(it); if( len > a[v].second) continue; for(int i= 0 ; i< g[v].size() ; i++ ){ int to = g[v][i].first; int dis = g[v][i].second; if(a[to].second > len + dis){ if(a[to].second!=inf){ pair <int, int> p1; p1.first = a[to].second; p1.second = to; st.erase(p1); } a[to].second = len + dis; if(a[to].first > a[to].second) swap(a[to].first, a[to].second); if(a[to].second < inf) st.insert(make_pair( a[to].second, to)); } } } return a[0].second; } /* 5 4 3 0 1 2 0 2 3 3 2 1 2 4 4 1 3 4 */

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

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:38:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         for(int i= 0 ; i< g[v].size() ; i++ ){
      |                        ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...