제출 #1225912

#제출 시각아이디문제언어결과실행 시간메모리
1225912sokratisi자매 도시 (APIO20_swap)C++20
컴파일 에러
0 ms0 KiB
#include "swap.h"
#include <queue>
#include <vector>

using namespace std;

// zero indexing

int n, m, dist[100005], p[100005], dumbdist[100005];
bool vis[100005];
vector<pair<int, int>> adj[100005];

void dijkstra(int s) {
    for (int i = 0; i < n; i++) dist[i] = 1e9+5;
    for (int i = 0; i < n; i++) vis[i] = false;
    priority_queue<pair<int, int>> q;
    dist[s] = 0;
    q.push({0, s});
    p[s] = -1;
    while(!q.empty()) {
        int node = q.top().second;
        q.pop();
        if (vis[node]) continue;
        vis[node] = true;
        for (auto u: adj[node]) {
            if (!vis[u.first]) {
                if (max(dist[node],u.second) < dist[u.first]) {
                    dist[u.first] = max(dist[node],u.second);
                    p[u.first] = node;
                    q.push({-dist[u.first], u.first});
                }
            }
        }
    }
}

void help_dumbdijkstra(int s, int nxt) { // put final vertex here
    if (p[s] != -1) help_dumbdijkstra(p[s], s);
    for (auto u: adj[s]) {
        if (u.first != p[s] && u.first != nxt) {
            if (p[s] != -1 && nxt != -1) dumbdist[s] = min(min(max(dist[s], u.second), max(dist[u.first], u.second)), dumbdist[s]);
            else dumbdist[s] = min(max(dumbdist[u.first], u.second), dumbdist[s])
        }
        else if (u.first == p[s]) {
            dumbdist[s] = min(max(dumbdist[u.first], u.second), dumbdist[s])
        }
    }
}

void dumbdijkstra(int s) { // put final vertex here
    for (int i = 0; i < n; i++) dumbdist[i] = 1e9+5;
    help_dumbdijkstra(s, -1);
}

void init(int N, int M, vector<int> u, vector<int> v, vector<int> w) {
    n = N;
    m = M;
    for (int i = 0; i < m; i++) {
        adj[u[i]].push_back({v[i], w[i]});
        adj[v[i]].push_back({u[i], w[i]});
    }
}

int getMinimumFuelCapacity(int x, int y) {
    dijkstra(x);
    dumbdijkstra(y);
    if (dumbdist[y] > 1e9) return -1;
    return dumbdist[y];
}

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

swap.cpp: In function 'void help_dumbdijkstra(int, int)':
swap.cpp:42:82: error: expected ';' before '}' token
   42 |             else dumbdist[s] = min(max(dumbdist[u.first], u.second), dumbdist[s])
      |                                                                                  ^
      |                                                                                  ;
   43 |         }
      |         ~                                                                         
swap.cpp:45:77: error: expected ';' before '}' token
   45 |             dumbdist[s] = min(max(dumbdist[u.first], u.second), dumbdist[s])
      |                                                                             ^
      |                                                                             ;
   46 |         }
      |         ~