Submission #1342161

#TimeUsernameProblemLanguageResultExecution timeMemory
1342161light2901Commuter Pass (JOI18_commuter_pass)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i)
#define FORD(i, b, a) for (int i = (b), _a = (a); i >= _a; --i)
#define ALL(x) x.begin(), x.end()
#define RALL(x) x.rbegin(), x.rend()
#define el cout<<"\n";
#define ii pair<int, int>
#define fi first
#define se second
#define int long long
using namespace std;
const int MAXN = 1e5 + 5;
const int INF = 1e18;
int n, m, S, T, U, V, ans, ds[MAXN], dt[MAXN], du[MAXN], dv[MAXN], vis[MAXN];
ii mi[MAXN];
vector<ii> g[MAXN];
vector<int> adj[MAXN];
vector<pair<ii, int>> canh;
void djk(int st, int d[]) {
    FOR(i, 1, n) d[i] = INF;
    d[st] = 0;
    priority_queue<ii, vector<ii>, greater<ii>> p;
    p.push({0, st});
    while(p.size()) {
        auto x = p.top(); p.pop();
        if(d[x.se] < x.fi) continue;
        for(auto v : g[x.se]) {
            if(d[v.fi] > x.fi + v.se) {
                d[v.fi] = x.fi + v.se;
                p.push({d[v.fi], v.fi});
            }
        }
    }
}
void dfs(int u) {
    vis[u] = 1;
    mi[u] = {du[u], dv[u]};
    for(auto v : adj[u]) 
        if(!vis[v]) {
            dfs(v);
        }
        mi[u].fi = min(mi[u].fi, mi[v].fi);
        mi[u].se = min(mi[u].se, mi[v].se);
    }
    ans = min({ans, du[u] + mi[u].se, mi[u].fi + dv[u]});
}
main(void) {
    ios_base::sync_with_stdio(0); 
    cin.tie(0); cout.tie(0);
    cin >> n >> m >> S >> T >> U >> V;
    FOR(i, 1, m) {
        int x, y, w; cin >> x >> y >> w;
        g[x].push_back({y, w});
        g[y].push_back({x, w});
        canh.push_back({{x, y}, w});
    }
    djk(S, ds);
    djk(T, dt);
    djk(U, du);
    djk(V, dv);
    for(auto tem : canh) {
        int x = tem.fi.fi, y = tem.fi.se, w = tem.se;
        if(ds[x] + dt[y] + w == ds[T]) {
            adj[x].push_back(y);
        }
        if(ds[y] + dt[x] + w == ds[T]) {
            adj[y].push_back(x);
        }
    }
    ans = du[V];
    dfs(S);
    cout << ans;
    return 0;
}
// T.T<33~~

Compilation message (stderr)

commuter_pass.cpp: In function 'void dfs(long long int)':
commuter_pass.cpp:42:37: error: 'v' was not declared in this scope
   42 |         mi[u].fi = min(mi[u].fi, mi[v].fi);
      |                                     ^
commuter_pass.cpp: At global scope:
commuter_pass.cpp:45:5: error: 'ans' does not name a type
   45 |     ans = min({ans, du[u] + mi[u].se, mi[u].fi + dv[u]});
      |     ^~~
commuter_pass.cpp:45:56: error: expected unqualified-id before ')' token
   45 |     ans = min({ans, du[u] + mi[u].se, mi[u].fi + dv[u]});
      |                                                        ^
commuter_pass.cpp:46:1: error: expected declaration before '}' token
   46 | }
      | ^
commuter_pass.cpp:47:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   47 | main(void) {
      | ^~~~