제출 #1336668

#제출 시각아이디문제언어결과실행 시간메모리
1336668dex111222333444555Crocodile's Underground City (IOI11_crocodile)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "crocodile.h"
#define all(v) begin(v), end(v)
#define ii pair<int, int>
#define siz(v) (int)(v).size()
#define lli pair<long long, int >
#define exit __exit
#define fi first
#define se second

using namespace std;

const int MAXN = 1e5 + 5, MAXM = 1e6 + 6;
const long long inf = 1e18 + 132;

template<class X, class Y> bool minimize(X &x, const Y &y){return x > y ? x = y, 1: 0;}

int numNode, numEdge, numExit, exit[MAXN];
long long dist[MAXN][2];
vector<ii > adj[MAXN];

void dijsktra(){
    priority_queue<lli, vector<lli >, greater<lli > > q;
    memset(dist, 0x3f, sizeof dist);

    for(int i = 1; i <= numExit; i++){
        int u = exit[i];
        q.emplace(dist[u][0] = dist[u][1] = 0, u);
    }

    while(siz(q)){
        int u = q.top().se;
        long long len = q.top().fi;
        q.pop();

        if (len > dist[u][1]) continue;

        for(ii x: adj[u]){
            int v = x.fi, w = x.se;

            if (dist[v][0] > dist[u][1] + w)
                if (dist[v][0] < dist[v][1]) q.emplace(dist[v][0], v);{
                dist[v][1] = dist[v][0];
                dist[v][0] = dist[u][1] + w;

            }else if (minimize(dist[v][1], dist[u][1] + w)) {
                q.emplace(dist[v][1], v);
            }
        }
    }
}


int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
    numNode = N, numEdge = M, numExit = K;

    for(int i = 1; i <= numEdge; i++){
        int u = R[i - 1][0], v = R[i - 1][1], w = L[i - 1];
        u++; v++;
        adj[u].emplace_back(v, w);
        adj[v].emplace_back(u, w);
    }

    for(int i = 1; i <= numExit; i++){
        exit[i] = P[i - 1];
        exit[i]++;
    }

    dijsktra();
    return dist[1][1];
}

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

crocodile.cpp: In function 'void dijsktra()':
crocodile.cpp:46:14: error: 'else' without a previous 'if'
   46 |             }else if (minimize(dist[v][1], dist[u][1] + w)) {
      |              ^~~~