Submission #924557

# Submission time Handle Problem Language Result Execution time Memory
924557 2024-02-09T08:00:19 Z crafticat Robot (JOI21_ho_t4) C++17
34 / 100
3000 ms 135388 KB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using pii = pair<ll,ll>;
constexpr ll inf = 1e12 + 7;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

    ll n, m; cin >> n >> m;

    vector<vector<tuple<ll,ll,ll>>> f(n + 1);
    for (ll i = 0; i < m; ++i) {
        ll a, b, c, d; cin >> a >> b >> c >> d;
        f[a].emplace_back(c,b,d);
        f[b].emplace_back(c,a,d);
    }

    vector<vector<tuple<ll,ll,ll>>> g(n + 1);
    for (ll i = 1; i <= n; ++i) {
        map<ll, ll> app;
        for (auto [c, node, d] : f[i]) {
            app[c]+=d;
        }

        for (auto [c, node, d] : f[i]) {
            g[i].emplace_back(node,d,c);
        }
    }

    priority_queue<tuple<ll,ll,ll>,vector<tuple<ll,ll,ll>>,greater<>> pq;
    pq.emplace(0,1,0);

    vector<ll> d(n + 1,inf);
    map<tuple<ll,ll>,bool> visited;

    while (!pq.empty()) {
        auto [cost, cur, par] = pq.top();pq.pop();
        if (visited[{cur,par}]) continue;
        d[cur] = min(d[cur],cost);
        visited[{cur,par}] = true;

        map<ll, ll> app;
        for (auto [child,len, c] : g[cur]) {
            if (child == par) continue;
            app[c] += len;
        }

        for (auto [child, len, c] : g[cur]) {
            if (child == par) continue;
            if (visited[{child,cur}]) continue;
            pq.emplace(cost + len,child,cur);
            pq.emplace(cost + app[c] - len,child,-cur);
        }
    }

    if (d[n] == inf) {
        cout << "-1";
        return 0;
    }
    cout << d[n];
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 432 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 21 ms 2324 KB Output is correct
8 Correct 6 ms 1096 KB Output is correct
9 Correct 2032 ms 100576 KB Output is correct
10 Correct 1004 ms 52108 KB Output is correct
11 Correct 1077 ms 51432 KB Output is correct
12 Correct 370 ms 27204 KB Output is correct
13 Correct 1018 ms 51176 KB Output is correct
14 Correct 1025 ms 51132 KB Output is correct
15 Correct 3 ms 860 KB Output is correct
16 Correct 10 ms 1372 KB Output is correct
17 Correct 8 ms 1176 KB Output is correct
18 Correct 1 ms 604 KB Output is correct
19 Correct 92 ms 8160 KB Output is correct
20 Correct 5 ms 856 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1282 ms 75076 KB Output is correct
2 Correct 339 ms 23540 KB Output is correct
3 Execution timed out 3050 ms 135388 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 432 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 21 ms 2324 KB Output is correct
8 Correct 6 ms 1096 KB Output is correct
9 Correct 2032 ms 100576 KB Output is correct
10 Correct 1004 ms 52108 KB Output is correct
11 Correct 1077 ms 51432 KB Output is correct
12 Correct 370 ms 27204 KB Output is correct
13 Correct 1018 ms 51176 KB Output is correct
14 Correct 1025 ms 51132 KB Output is correct
15 Correct 3 ms 860 KB Output is correct
16 Correct 10 ms 1372 KB Output is correct
17 Correct 8 ms 1176 KB Output is correct
18 Correct 1 ms 604 KB Output is correct
19 Correct 92 ms 8160 KB Output is correct
20 Correct 5 ms 856 KB Output is correct
21 Correct 1282 ms 75076 KB Output is correct
22 Correct 339 ms 23540 KB Output is correct
23 Execution timed out 3050 ms 135388 KB Time limit exceeded
24 Halted 0 ms 0 KB -