제출 #497261

#제출 시각아이디문제언어결과실행 시간메모리
497261Skywk악어의 지하 도시 (IOI11_crocodile)C++14
100 / 100
669 ms84580 KiB
#include "crocodile.h"
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<math.h>
#include<queue>
#include<stack>
#define lmt 100000
#define LMT 1000000
#define mod 1000000007
#define pii pair<int, int>
#define pil pair<int, long long>
#define pli pair<long long, int>
 
using namespace std;

vector<pil> graph[lmt];
long long best[LMT];
bool once[LMT];

int travel_plan(int n, int m, int R[][2], int L[], int k, int P[])
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    for(int i=0; i<m;  i++)
    {
        int a=R[i][0], b=R[i][1];
        graph[a].push_back({b, L[i]});
        graph[b].push_back({a, L[i]});
    }
    
    priority_queue<pli, vector<pli>, greater<pli>> pq;
    for(int i=0, x; i<k; i++)
        pq.push({0, P[i]});

    for(int i=0; i<n; i++)
        best[i]=-1;
    while(!pq.empty())
    {
        auto p=pq.top();
        pq.pop();
        int x=p.second; long long w=p.first;

        if(best[x] != -1)
            continue;
        if(w!=0 && !once[x])
        {
            once[x]=true;
            continue;
        }

        best[x]=w;
        for(auto y : graph[x])
        {
            if(best[y.first] != -1)
                continue;
            pq.push({w+y.second, y.first});
        }
    }
    return best[0];
}

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

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:37:18: warning: unused variable 'x' [-Wunused-variable]
   37 |     for(int i=0, x; i<k; i++)
      |                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...