Submission #846912

# Submission time Handle Problem Language Result Execution time Memory
846912 2023-09-08T16:10:31 Z manhlinh1501 Jakarta Skyscrapers (APIO15_skyscraper) C++17
22 / 100
8 ms 9956 KB
#include <bits/stdc++.h>
using namespace std;

using pii = pair<int, int>;

const int N = 3e4 + 5;
const int oo = 1e9;
const int SQRT = 175;

#define eb emplace_back

struct node {
    int w, u, s;

    node() {
        w = u = s = 0;
    }

    node(int w, int u, int s) : w(w), u(u), s(s) {}

    friend bool operator > (node a, node b) {
        return a.w > b.w;
    }
};

struct _data {
    int to, w, cur;
    _data() {
        to = w = cur = 0;
    }

    _data(int to, int w, int cur) : to(to), w(w), cur(cur) {}
};

int n, m;
int dist[N];
pii a[N];
vector<_data> adj[N];
priority_queue<node, vector<node>, greater<node>> Q;

void update(int u, int v, int w, int cur) {
    if(v > n)
        return;

    if(v < 0)
        return;

    if(dist[v] > dist[u] + w) {
        dist[v] = dist[u] + w;
        Q.emplace(dist[v], v, cur);
    }
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m;

    for(int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v;

        for(int j = 1; j < SQRT; j++)
            adj[u].eb(j * v, j, v);

        a[i] = {u, v};
    }

    for(int i = 0; i < n; i++)
        dist[i] = oo;

    dist[a[0].first] = 0;
    Q.emplace(0, a[0].first, a[0].second);

    while(!Q.empty()) {
        node top = Q.top();
        Q.pop();
        int u = top.u;

        if(top.w != dist[u])
            continue;

        for(auto [v, w, cur] : adj[u]) {
            update(u, u + v, w, cur);
            update(u, u - v, w, cur);
        }
    }

    cout << (dist[a[1].first] == oo ? -1 : dist[a[1].first]);
}
/*
5 3
0 2
1 1
4 1
*/
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1112 KB Output is correct
2 Correct 1 ms 1112 KB Output is correct
3 Correct 1 ms 1116 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 1112 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1112 KB Output is correct
2 Correct 1 ms 1112 KB Output is correct
3 Correct 1 ms 1112 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 1112 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1112 KB Output is correct
9 Correct 1 ms 1112 KB Output is correct
10 Correct 2 ms 2392 KB Output is correct
11 Correct 6 ms 6744 KB Output is correct
12 Correct 6 ms 7636 KB Output is correct
13 Correct 6 ms 9172 KB Output is correct
14 Correct 6 ms 6744 KB Output is correct
15 Correct 6 ms 7000 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1112 KB Output is correct
2 Correct 1 ms 1112 KB Output is correct
3 Correct 1 ms 1112 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 1112 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 1 ms 1112 KB Output is correct
10 Correct 2 ms 2392 KB Output is correct
11 Correct 6 ms 6744 KB Output is correct
12 Correct 6 ms 8916 KB Output is correct
13 Correct 6 ms 9172 KB Output is correct
14 Correct 6 ms 6744 KB Output is correct
15 Correct 6 ms 7000 KB Output is correct
16 Correct 2 ms 3672 KB Output is correct
17 Correct 6 ms 6744 KB Output is correct
18 Correct 3 ms 4228 KB Output is correct
19 Correct 2 ms 2648 KB Output is correct
20 Correct 7 ms 7256 KB Output is correct
21 Correct 3 ms 4696 KB Output is correct
22 Correct 2 ms 3160 KB Output is correct
23 Correct 3 ms 4184 KB Output is correct
24 Correct 6 ms 7000 KB Output is correct
25 Correct 6 ms 7256 KB Output is correct
26 Incorrect 5 ms 9956 KB Output isn't correct
27 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1312 KB Output is correct
2 Correct 1 ms 1112 KB Output is correct
3 Correct 1 ms 1112 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 1112 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1116 KB Output is correct
9 Correct 1 ms 1112 KB Output is correct
10 Correct 2 ms 2392 KB Output is correct
11 Correct 7 ms 6744 KB Output is correct
12 Correct 6 ms 8404 KB Output is correct
13 Correct 6 ms 8404 KB Output is correct
14 Correct 6 ms 6748 KB Output is correct
15 Correct 6 ms 7000 KB Output is correct
16 Correct 2 ms 3672 KB Output is correct
17 Correct 6 ms 6744 KB Output is correct
18 Correct 3 ms 4184 KB Output is correct
19 Correct 2 ms 2648 KB Output is correct
20 Correct 7 ms 7256 KB Output is correct
21 Correct 3 ms 4696 KB Output is correct
22 Correct 3 ms 3160 KB Output is correct
23 Correct 3 ms 4188 KB Output is correct
24 Correct 6 ms 7000 KB Output is correct
25 Correct 6 ms 7256 KB Output is correct
26 Incorrect 5 ms 8672 KB Output isn't correct
27 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1112 KB Output is correct
2 Correct 1 ms 1112 KB Output is correct
3 Correct 1 ms 1116 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 1112 KB Output is correct
6 Correct 1 ms 1112 KB Output is correct
7 Correct 1 ms 1112 KB Output is correct
8 Correct 1 ms 1112 KB Output is correct
9 Correct 1 ms 1112 KB Output is correct
10 Correct 2 ms 2648 KB Output is correct
11 Correct 8 ms 6744 KB Output is correct
12 Correct 6 ms 9432 KB Output is correct
13 Correct 6 ms 8916 KB Output is correct
14 Correct 6 ms 6744 KB Output is correct
15 Correct 6 ms 7000 KB Output is correct
16 Correct 2 ms 3672 KB Output is correct
17 Correct 6 ms 6744 KB Output is correct
18 Correct 3 ms 4184 KB Output is correct
19 Correct 2 ms 2648 KB Output is correct
20 Correct 7 ms 7000 KB Output is correct
21 Correct 3 ms 4696 KB Output is correct
22 Correct 3 ms 3164 KB Output is correct
23 Correct 3 ms 4184 KB Output is correct
24 Correct 6 ms 7000 KB Output is correct
25 Correct 6 ms 7256 KB Output is correct
26 Incorrect 5 ms 9188 KB Output isn't correct
27 Halted 0 ms 0 KB -