답안 #705160

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
705160 2023-03-03T13:11:47 Z bebra Jakarta Skyscrapers (APIO15_skyscraper) C++17
57 / 100
1000 ms 4352 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
 
#define dbg(x) cerr << #x << ": " << x << endl;
 
 
const int MAX_N = 30000 + 5;
const ll INF = 1e9;
vector<int> jumps[MAX_N];

ll dist[MAX_N];
bool used[MAX_N];
 
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
 
    int n, m;
    cin >> n >> m;
    int s, t;


    for (int i = 0; i < m; ++i) {
        int v, k;
        cin >> v >> k;
        if (i == 0) s = v;
        if (i == 1) t = v;
        jumps[v].push_back(k);
    }

    // maybe lazy edges?
 
    fill_n(dist, n, INF);
    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;
    pq.emplace(0, s);
    while (!pq.empty()) {
        auto [curr_dist, v] = pq.top();
        pq.pop();
        if (used[v]) continue;

        used[v] = true;
        dist[v] = curr_dist;

        if (v == t) break;
        if (dist[v] == INF) break;
        
        for (auto k : jumps[v]) {
            for (int u = v + k; u < n; u += k) {
                int w = (u - v) / k;
                if (used[u] || dist[v] + w >= dist[u]) continue;
                dist[u] = dist[v] + w;
                pq.emplace(dist[u], u);
            }
            for (int u = v - k; u >= 0; u -= k) {
                int w = (v - u) / k;
                if (used[u] || dist[v] + w >= dist[u]) continue;
                dist[u] = dist[v] + w;
                pq.emplace(dist[u], u);
            }
        }
    }
 
    if (!used[t]) {
        cout << "-1\n";
    } else {
        cout << dist[t] << '\n';
    }
 
    return 0;
}
 
 
/*
5 3
0 2
1 1
4 1
*/

Compilation message

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:46:9: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized]
   46 |         if (v == t) break;
      |         ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 980 KB Output is correct
2 Correct 1 ms 980 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 980 KB Output is correct
5 Correct 1 ms 980 KB Output is correct
6 Correct 1 ms 1028 KB Output is correct
7 Correct 1 ms 980 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 980 KB Output is correct
2 Correct 1 ms 980 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 1028 KB Output is correct
5 Correct 1 ms 980 KB Output is correct
6 Correct 1 ms 980 KB Output is correct
7 Correct 1 ms 980 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 1028 KB Output is correct
10 Correct 1 ms 980 KB Output is correct
11 Correct 1 ms 980 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
13 Correct 2 ms 980 KB Output is correct
14 Correct 1 ms 988 KB Output is correct
15 Correct 2 ms 980 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 980 KB Output is correct
2 Correct 1 ms 980 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 980 KB Output is correct
5 Correct 1 ms 980 KB Output is correct
6 Correct 1 ms 980 KB Output is correct
7 Correct 1 ms 980 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 980 KB Output is correct
10 Correct 1 ms 980 KB Output is correct
11 Correct 1 ms 980 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 1 ms 980 KB Output is correct
15 Correct 2 ms 980 KB Output is correct
16 Correct 1 ms 980 KB Output is correct
17 Correct 2 ms 1108 KB Output is correct
18 Correct 1 ms 980 KB Output is correct
19 Correct 1 ms 980 KB Output is correct
20 Correct 18 ms 1108 KB Output is correct
21 Correct 1 ms 980 KB Output is correct
22 Correct 1 ms 980 KB Output is correct
23 Correct 1 ms 980 KB Output is correct
24 Correct 2 ms 1108 KB Output is correct
25 Correct 1 ms 1108 KB Output is correct
26 Correct 1 ms 980 KB Output is correct
27 Correct 1 ms 1108 KB Output is correct
28 Correct 2 ms 1108 KB Output is correct
29 Correct 2 ms 1364 KB Output is correct
30 Correct 2 ms 1236 KB Output is correct
31 Correct 2 ms 1236 KB Output is correct
32 Correct 1 ms 1236 KB Output is correct
33 Correct 4 ms 1368 KB Output is correct
34 Correct 3 ms 1368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 980 KB Output is correct
2 Correct 1 ms 980 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 980 KB Output is correct
5 Correct 1 ms 980 KB Output is correct
6 Correct 1 ms 980 KB Output is correct
7 Correct 1 ms 980 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 980 KB Output is correct
10 Correct 1 ms 980 KB Output is correct
11 Correct 1 ms 980 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
13 Correct 2 ms 980 KB Output is correct
14 Correct 1 ms 980 KB Output is correct
15 Correct 1 ms 980 KB Output is correct
16 Correct 1 ms 980 KB Output is correct
17 Correct 1 ms 1108 KB Output is correct
18 Correct 2 ms 980 KB Output is correct
19 Correct 1 ms 980 KB Output is correct
20 Correct 18 ms 1196 KB Output is correct
21 Correct 1 ms 980 KB Output is correct
22 Correct 1 ms 980 KB Output is correct
23 Correct 1 ms 1108 KB Output is correct
24 Correct 2 ms 1108 KB Output is correct
25 Correct 1 ms 1108 KB Output is correct
26 Correct 1 ms 1108 KB Output is correct
27 Correct 1 ms 1044 KB Output is correct
28 Correct 1 ms 1108 KB Output is correct
29 Correct 3 ms 1364 KB Output is correct
30 Correct 2 ms 1236 KB Output is correct
31 Correct 2 ms 1236 KB Output is correct
32 Correct 2 ms 1236 KB Output is correct
33 Correct 4 ms 1368 KB Output is correct
34 Correct 3 ms 1368 KB Output is correct
35 Correct 9 ms 1492 KB Output is correct
36 Correct 2 ms 1176 KB Output is correct
37 Correct 5 ms 1620 KB Output is correct
38 Correct 6 ms 1684 KB Output is correct
39 Correct 6 ms 1492 KB Output is correct
40 Correct 6 ms 1492 KB Output is correct
41 Correct 6 ms 1748 KB Output is correct
42 Correct 5 ms 1492 KB Output is correct
43 Correct 4 ms 1432 KB Output is correct
44 Correct 174 ms 1496 KB Output is correct
45 Correct 10 ms 1876 KB Output is correct
46 Correct 8 ms 1792 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 980 KB Output is correct
2 Correct 1 ms 1000 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 980 KB Output is correct
5 Correct 1 ms 984 KB Output is correct
6 Correct 1 ms 980 KB Output is correct
7 Correct 1 ms 980 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 984 KB Output is correct
10 Correct 1 ms 980 KB Output is correct
11 Correct 2 ms 980 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 1 ms 980 KB Output is correct
15 Correct 1 ms 980 KB Output is correct
16 Correct 1 ms 980 KB Output is correct
17 Correct 1 ms 1108 KB Output is correct
18 Correct 1 ms 980 KB Output is correct
19 Correct 1 ms 980 KB Output is correct
20 Correct 18 ms 1180 KB Output is correct
21 Correct 1 ms 980 KB Output is correct
22 Correct 1 ms 1048 KB Output is correct
23 Correct 1 ms 980 KB Output is correct
24 Correct 1 ms 1108 KB Output is correct
25 Correct 1 ms 1108 KB Output is correct
26 Correct 1 ms 980 KB Output is correct
27 Correct 1 ms 980 KB Output is correct
28 Correct 1 ms 1108 KB Output is correct
29 Correct 3 ms 1364 KB Output is correct
30 Correct 1 ms 1236 KB Output is correct
31 Correct 2 ms 1236 KB Output is correct
32 Correct 2 ms 1236 KB Output is correct
33 Correct 4 ms 1368 KB Output is correct
34 Correct 3 ms 1368 KB Output is correct
35 Correct 7 ms 1388 KB Output is correct
36 Correct 2 ms 1108 KB Output is correct
37 Correct 5 ms 1364 KB Output is correct
38 Correct 6 ms 1492 KB Output is correct
39 Correct 5 ms 1236 KB Output is correct
40 Correct 6 ms 1236 KB Output is correct
41 Correct 6 ms 1508 KB Output is correct
42 Correct 5 ms 1424 KB Output is correct
43 Correct 5 ms 1492 KB Output is correct
44 Correct 171 ms 1476 KB Output is correct
45 Correct 9 ms 1808 KB Output is correct
46 Correct 12 ms 1876 KB Output is correct
47 Correct 11 ms 2892 KB Output is correct
48 Correct 8 ms 1876 KB Output is correct
49 Correct 5 ms 1876 KB Output is correct
50 Correct 4 ms 1696 KB Output is correct
51 Correct 18 ms 4352 KB Output is correct
52 Correct 15 ms 3292 KB Output is correct
53 Correct 8 ms 2516 KB Output is correct
54 Correct 3 ms 1548 KB Output is correct
55 Correct 2 ms 1624 KB Output is correct
56 Execution timed out 1081 ms 3028 KB Time limit exceeded
57 Halted 0 ms 0 KB -