Submission #847034

# Submission time Handle Problem Language Result Execution time Memory
847034 2023-09-09T02:30:23 Z vjudge1 Jakarta Skyscrapers (APIO15_skyscraper) C++17
36 / 100
133 ms 262144 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;
bool vis[N];

void update(int u, int v, int w, int cur) {
    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 * v <= n or j * v <= u; 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;

        if(vis[u])
            continue;

        vis[u] = true;

        for(auto [v, w, cur] : adj[u]) {
            if(u + v <= n)
                update(u, u + v, w, cur);

            if(u - v >= 0)
                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 2 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
# 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 1168 KB Output is correct
10 Correct 1 ms 1112 KB Output is correct
11 Correct 1 ms 1368 KB Output is correct
12 Correct 4 ms 5844 KB Output is correct
13 Correct 5 ms 4308 KB Output is correct
14 Correct 1 ms 1112 KB Output is correct
15 Correct 1 ms 1116 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 1116 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 1116 KB Output is correct
8 Correct 1 ms 1112 KB Output is correct
9 Correct 1 ms 1112 KB Output is correct
10 Correct 1 ms 1112 KB Output is correct
11 Correct 1 ms 1368 KB Output is correct
12 Correct 4 ms 5628 KB Output is correct
13 Correct 4 ms 4308 KB Output is correct
14 Correct 1 ms 1112 KB Output is correct
15 Correct 1 ms 1116 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Correct 1 ms 1372 KB Output is correct
18 Correct 1 ms 1112 KB Output is correct
19 Correct 1 ms 1116 KB Output is correct
20 Correct 48 ms 49292 KB Output is correct
21 Correct 1 ms 1116 KB Output is correct
22 Correct 1 ms 1112 KB Output is correct
23 Correct 1 ms 1112 KB Output is correct
24 Correct 2 ms 1368 KB Output is correct
25 Correct 2 ms 1368 KB Output is correct
26 Correct 38 ms 50868 KB Output is correct
27 Correct 36 ms 51180 KB Output is correct
28 Correct 1 ms 1368 KB Output is correct
29 Correct 2 ms 2392 KB Output is correct
30 Correct 1 ms 1628 KB Output is correct
31 Correct 2 ms 1880 KB Output is correct
32 Correct 2 ms 1624 KB Output is correct
33 Correct 4 ms 3160 KB Output is correct
34 Correct 4 ms 3400 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 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 1 ms 1112 KB Output is correct
11 Correct 2 ms 1372 KB Output is correct
12 Correct 4 ms 4304 KB Output is correct
13 Correct 5 ms 5332 KB Output is correct
14 Correct 1 ms 1112 KB Output is correct
15 Correct 1 ms 1112 KB Output is correct
16 Correct 1 ms 1116 KB Output is correct
17 Correct 2 ms 1368 KB Output is correct
18 Correct 1 ms 1112 KB Output is correct
19 Correct 1 ms 1116 KB Output is correct
20 Correct 47 ms 49240 KB Output is correct
21 Correct 2 ms 1112 KB Output is correct
22 Correct 1 ms 1116 KB Output is correct
23 Correct 1 ms 1112 KB Output is correct
24 Correct 2 ms 1372 KB Output is correct
25 Correct 2 ms 1368 KB Output is correct
26 Correct 36 ms 51120 KB Output is correct
27 Correct 36 ms 51172 KB Output is correct
28 Correct 1 ms 1368 KB Output is correct
29 Correct 2 ms 2392 KB Output is correct
30 Correct 2 ms 1628 KB Output is correct
31 Correct 2 ms 1880 KB Output is correct
32 Correct 1 ms 1624 KB Output is correct
33 Correct 3 ms 3160 KB Output is correct
34 Correct 4 ms 3404 KB Output is correct
35 Correct 7 ms 3928 KB Output is correct
36 Correct 2 ms 1368 KB Output is correct
37 Correct 9 ms 6492 KB Output is correct
38 Correct 9 ms 5656 KB Output is correct
39 Correct 9 ms 5976 KB Output is correct
40 Correct 10 ms 5720 KB Output is correct
41 Correct 9 ms 5720 KB Output is correct
42 Runtime error 133 ms 262144 KB Execution killed with signal 9
43 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 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 1368 KB Output is correct
10 Correct 1 ms 1116 KB Output is correct
11 Correct 1 ms 1368 KB Output is correct
12 Correct 3 ms 5072 KB Output is correct
13 Correct 3 ms 5076 KB Output is correct
14 Correct 1 ms 1112 KB Output is correct
15 Correct 1 ms 1112 KB Output is correct
16 Correct 1 ms 1112 KB Output is correct
17 Correct 2 ms 1368 KB Output is correct
18 Correct 1 ms 1116 KB Output is correct
19 Correct 2 ms 1112 KB Output is correct
20 Correct 47 ms 49232 KB Output is correct
21 Correct 1 ms 1112 KB Output is correct
22 Correct 1 ms 1112 KB Output is correct
23 Correct 1 ms 1116 KB Output is correct
24 Correct 1 ms 1368 KB Output is correct
25 Correct 2 ms 1368 KB Output is correct
26 Correct 39 ms 51392 KB Output is correct
27 Correct 38 ms 50660 KB Output is correct
28 Correct 2 ms 1368 KB Output is correct
29 Correct 2 ms 2392 KB Output is correct
30 Correct 2 ms 1624 KB Output is correct
31 Correct 2 ms 1880 KB Output is correct
32 Correct 2 ms 1624 KB Output is correct
33 Correct 4 ms 3160 KB Output is correct
34 Correct 4 ms 3400 KB Output is correct
35 Correct 7 ms 3932 KB Output is correct
36 Correct 2 ms 1368 KB Output is correct
37 Correct 8 ms 6492 KB Output is correct
38 Correct 9 ms 5720 KB Output is correct
39 Correct 10 ms 5976 KB Output is correct
40 Correct 12 ms 5976 KB Output is correct
41 Correct 9 ms 5724 KB Output is correct
42 Runtime error 129 ms 262144 KB Execution killed with signal 9
43 Halted 0 ms 0 KB -