# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
848389 | Warinchai | 악어의 지하 도시 (IOI11_crocodile) | C++14 | 415 ms | 91924 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "crocodile.h"
#include<bits/stdc++.h>
using namespace std;
vector<pair<int,long long> >v[100005];
pair<long long,long long> dis[100005];
bool vis[100005];
priority_queue<pair<long long,int>,vector<pair<long long,int> >, greater<pair<long long,int> > >pq;
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[])
{
for(int i=0;i<m;i++){
int st=r[i][0];
int en=r[i][1];
int w=l[i];
v[st].push_back({en,w});
v[en].push_back({st,w});
}
for(int i=0;i<n;i++){
dis[i].first=dis[i].second=LLONG_MAX;
}
for(int i=0;i<k;i++){
dis[p[i]].first=dis[p[i]].second=0;
pq.push({0,p[i]});
}
while(!pq.empty()){
int x=pq.top().second;
long long cost=pq.top().first;
pq.pop();
if(vis[x]){
continue;
}
vis[x]=1;
for(int i=0;i<v[x].size();i++){
int nn=v[x][i].first;
long long nc=cost+v[x][i].second;
if(nc<dis[nn].second){
dis[nn].second=nc;
if(dis[nn].second<dis[nn].first)swap(dis[nn].second,dis[nn].first);
if(dis[nn].second!=LLONG_MAX){
pq.push({dis[nn].second,nn});
}
}
}
}
return dis[0].second;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |