#include <bits/stdc++.h>
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("unroll-loops")
using namespace std;
typedef long long ll;
const int INF = 1e9;
const int B = 70;
const int MAXN = 3e4 + 5;
vector<pair<int, int> > d;
int dist[MAXN][B];
vector<array<int, 3> > g[MAXN][B];
signed main()
{
//ifstream cin("input.txt");
//ofstream cout("output.txt");
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, m;
cin >> n >> m;
d.resize(m);
vector<int> big;
for (int i = 0; i < m; i++)
{
cin >> d[i].first >> d[i].second;
if (d[i].second >= B)
{
big.push_back(i);
}
}
for (int i = 0; i < n; i++)
for (int j = 0; j < B; j++)
dist[i][j] = INF;
for (int i = 0; i < m; i++)
{
if (d[i].second >= B) continue;
g[d[i].first][0].push_back({d[i].first, d[i].second, 0});
}
for (int i = 0; i < n; i++)
{
for (int j = 1; j < B; j++)
{
if (i - j >= 0)
{
g[i][j].push_back({i - j, 0, 1});
g[i][j].push_back({i - j, j, 1});
}
if (i + j < n)
{
g[i][j].push_back({i + j, 0, 1});
g[i][j].push_back({i + j, j, 1});
}
}
}
for (auto& i : big)
{
for (int j = d[i].first, k = 0; j < n; j += d[i].second, k++)
{
g[d[i].first][0].push_back({j, 0, k});
}
for (int j = d[i].first, k = 0; j >= 0; j -= d[i].second, k++)
{
g[d[i].first][0].push_back({j, 0, k});
}
}
set<array<int, 3> > st;
st.insert({0, d[0].first, 0});
dist[d[0].first][0] = 0;
while (!st.empty())
{
auto [dst, pos, pw] = *st.begin();
st.erase(st.begin());
if (dst > dist[pos][pw]) continue;
for (auto& [psu, pwu, w] : g[pos][pw])
{
if (dist[psu][pwu] > dst + w)
{
st.erase({dist[psu][pwu], psu, pwu});
dist[psu][pwu] = dst + w;
st.insert({dist[psu][pwu], psu, pwu});
}
}
}
int mn = INF;
for (int i = 0; i < B; i++)
mn = min(mn, dist[d[1].first][i]);
if (mn == INF)
cout << -1;
else
cout << mn;
return 0;
}
/*
small
(i, j) -1> (i - j, 0), (i + j, 0)
(i, 0) -0> (i, j)
(i, j) -1> (i - j, j), (i + j, j)
large
(i, 0) -1> (i + j, 0)
(i, 0) -1> (i - j, 0)
*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
34 ms |
49560 KB |
Output is correct |
2 |
Correct |
26 ms |
49536 KB |
Output is correct |
3 |
Correct |
26 ms |
49548 KB |
Output is correct |
4 |
Correct |
25 ms |
49628 KB |
Output is correct |
5 |
Correct |
25 ms |
49584 KB |
Output is correct |
6 |
Correct |
25 ms |
49620 KB |
Output is correct |
7 |
Correct |
24 ms |
49656 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
27 ms |
49528 KB |
Output is correct |
2 |
Correct |
32 ms |
49632 KB |
Output is correct |
3 |
Correct |
30 ms |
49612 KB |
Output is correct |
4 |
Correct |
31 ms |
49620 KB |
Output is correct |
5 |
Correct |
24 ms |
49620 KB |
Output is correct |
6 |
Correct |
24 ms |
49552 KB |
Output is correct |
7 |
Correct |
26 ms |
49652 KB |
Output is correct |
8 |
Correct |
32 ms |
49644 KB |
Output is correct |
9 |
Correct |
26 ms |
49748 KB |
Output is correct |
10 |
Correct |
27 ms |
49876 KB |
Output is correct |
11 |
Correct |
27 ms |
50004 KB |
Output is correct |
12 |
Correct |
31 ms |
49872 KB |
Output is correct |
13 |
Correct |
27 ms |
50004 KB |
Output is correct |
14 |
Correct |
34 ms |
50092 KB |
Output is correct |
15 |
Correct |
29 ms |
50132 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
49596 KB |
Output is correct |
2 |
Correct |
23 ms |
49652 KB |
Output is correct |
3 |
Correct |
22 ms |
49620 KB |
Output is correct |
4 |
Correct |
24 ms |
49568 KB |
Output is correct |
5 |
Correct |
24 ms |
49560 KB |
Output is correct |
6 |
Correct |
26 ms |
49620 KB |
Output is correct |
7 |
Correct |
26 ms |
49652 KB |
Output is correct |
8 |
Correct |
26 ms |
49648 KB |
Output is correct |
9 |
Correct |
25 ms |
49768 KB |
Output is correct |
10 |
Correct |
25 ms |
49912 KB |
Output is correct |
11 |
Correct |
26 ms |
50088 KB |
Output is correct |
12 |
Correct |
32 ms |
49896 KB |
Output is correct |
13 |
Correct |
35 ms |
49868 KB |
Output is correct |
14 |
Correct |
30 ms |
50136 KB |
Output is correct |
15 |
Correct |
31 ms |
50120 KB |
Output is correct |
16 |
Correct |
30 ms |
50448 KB |
Output is correct |
17 |
Correct |
39 ms |
53084 KB |
Output is correct |
18 |
Correct |
45 ms |
57516 KB |
Output is correct |
19 |
Correct |
42 ms |
58748 KB |
Output is correct |
20 |
Correct |
43 ms |
58700 KB |
Output is correct |
21 |
Correct |
31 ms |
51284 KB |
Output is correct |
22 |
Correct |
41 ms |
57660 KB |
Output is correct |
23 |
Correct |
47 ms |
56924 KB |
Output is correct |
24 |
Correct |
56 ms |
58460 KB |
Output is correct |
25 |
Correct |
45 ms |
58820 KB |
Output is correct |
26 |
Correct |
45 ms |
58700 KB |
Output is correct |
27 |
Correct |
47 ms |
58736 KB |
Output is correct |
28 |
Correct |
49 ms |
58884 KB |
Output is correct |
29 |
Correct |
59 ms |
58756 KB |
Output is correct |
30 |
Correct |
50 ms |
58596 KB |
Output is correct |
31 |
Correct |
51 ms |
58700 KB |
Output is correct |
32 |
Correct |
50 ms |
58696 KB |
Output is correct |
33 |
Correct |
73 ms |
58864 KB |
Output is correct |
34 |
Correct |
77 ms |
58852 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
32 ms |
49752 KB |
Output is correct |
2 |
Correct |
32 ms |
49628 KB |
Output is correct |
3 |
Correct |
26 ms |
49628 KB |
Output is correct |
4 |
Correct |
28 ms |
49612 KB |
Output is correct |
5 |
Correct |
26 ms |
49584 KB |
Output is correct |
6 |
Correct |
26 ms |
49620 KB |
Output is correct |
7 |
Correct |
26 ms |
49720 KB |
Output is correct |
8 |
Correct |
26 ms |
49632 KB |
Output is correct |
9 |
Correct |
26 ms |
49700 KB |
Output is correct |
10 |
Correct |
27 ms |
49876 KB |
Output is correct |
11 |
Correct |
28 ms |
49968 KB |
Output is correct |
12 |
Correct |
26 ms |
49996 KB |
Output is correct |
13 |
Correct |
27 ms |
49892 KB |
Output is correct |
14 |
Correct |
27 ms |
50020 KB |
Output is correct |
15 |
Correct |
28 ms |
50032 KB |
Output is correct |
16 |
Correct |
29 ms |
50388 KB |
Output is correct |
17 |
Correct |
36 ms |
53112 KB |
Output is correct |
18 |
Correct |
42 ms |
57588 KB |
Output is correct |
19 |
Correct |
47 ms |
58644 KB |
Output is correct |
20 |
Correct |
43 ms |
58700 KB |
Output is correct |
21 |
Correct |
30 ms |
51308 KB |
Output is correct |
22 |
Correct |
41 ms |
57652 KB |
Output is correct |
23 |
Correct |
42 ms |
56904 KB |
Output is correct |
24 |
Correct |
48 ms |
58428 KB |
Output is correct |
25 |
Correct |
47 ms |
58816 KB |
Output is correct |
26 |
Correct |
51 ms |
58688 KB |
Output is correct |
27 |
Correct |
46 ms |
58700 KB |
Output is correct |
28 |
Correct |
48 ms |
58864 KB |
Output is correct |
29 |
Correct |
58 ms |
58760 KB |
Output is correct |
30 |
Correct |
47 ms |
58680 KB |
Output is correct |
31 |
Correct |
51 ms |
58636 KB |
Output is correct |
32 |
Correct |
54 ms |
58736 KB |
Output is correct |
33 |
Correct |
77 ms |
58908 KB |
Output is correct |
34 |
Correct |
72 ms |
58856 KB |
Output is correct |
35 |
Correct |
59 ms |
58328 KB |
Output is correct |
36 |
Correct |
40 ms |
54908 KB |
Output is correct |
37 |
Correct |
95 ms |
61132 KB |
Output is correct |
38 |
Correct |
78 ms |
61684 KB |
Output is correct |
39 |
Correct |
81 ms |
61748 KB |
Output is correct |
40 |
Correct |
74 ms |
61688 KB |
Output is correct |
41 |
Correct |
78 ms |
61812 KB |
Output is correct |
42 |
Correct |
49 ms |
59356 KB |
Output is correct |
43 |
Correct |
48 ms |
59372 KB |
Output is correct |
44 |
Correct |
50 ms |
59372 KB |
Output is correct |
45 |
Correct |
91 ms |
65540 KB |
Output is correct |
46 |
Correct |
98 ms |
65532 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
29 ms |
49584 KB |
Output is correct |
2 |
Correct |
31 ms |
49604 KB |
Output is correct |
3 |
Correct |
29 ms |
49528 KB |
Output is correct |
4 |
Correct |
30 ms |
49536 KB |
Output is correct |
5 |
Correct |
27 ms |
49620 KB |
Output is correct |
6 |
Correct |
27 ms |
49760 KB |
Output is correct |
7 |
Correct |
27 ms |
49612 KB |
Output is correct |
8 |
Correct |
31 ms |
49652 KB |
Output is correct |
9 |
Correct |
32 ms |
49688 KB |
Output is correct |
10 |
Correct |
33 ms |
49988 KB |
Output is correct |
11 |
Correct |
28 ms |
50088 KB |
Output is correct |
12 |
Correct |
28 ms |
49892 KB |
Output is correct |
13 |
Correct |
27 ms |
49896 KB |
Output is correct |
14 |
Correct |
29 ms |
50040 KB |
Output is correct |
15 |
Correct |
33 ms |
50132 KB |
Output is correct |
16 |
Correct |
29 ms |
50328 KB |
Output is correct |
17 |
Correct |
41 ms |
53068 KB |
Output is correct |
18 |
Correct |
49 ms |
57564 KB |
Output is correct |
19 |
Correct |
46 ms |
58700 KB |
Output is correct |
20 |
Correct |
44 ms |
58672 KB |
Output is correct |
21 |
Correct |
30 ms |
51276 KB |
Output is correct |
22 |
Correct |
41 ms |
57660 KB |
Output is correct |
23 |
Correct |
44 ms |
56908 KB |
Output is correct |
24 |
Correct |
49 ms |
58440 KB |
Output is correct |
25 |
Correct |
49 ms |
58800 KB |
Output is correct |
26 |
Correct |
44 ms |
58740 KB |
Output is correct |
27 |
Correct |
46 ms |
58732 KB |
Output is correct |
28 |
Correct |
56 ms |
58828 KB |
Output is correct |
29 |
Correct |
59 ms |
58752 KB |
Output is correct |
30 |
Correct |
47 ms |
58664 KB |
Output is correct |
31 |
Correct |
53 ms |
58668 KB |
Output is correct |
32 |
Correct |
49 ms |
58644 KB |
Output is correct |
33 |
Correct |
83 ms |
58864 KB |
Output is correct |
34 |
Correct |
86 ms |
58860 KB |
Output is correct |
35 |
Correct |
76 ms |
58336 KB |
Output is correct |
36 |
Correct |
39 ms |
54860 KB |
Output is correct |
37 |
Correct |
75 ms |
61076 KB |
Output is correct |
38 |
Correct |
75 ms |
61720 KB |
Output is correct |
39 |
Correct |
75 ms |
61708 KB |
Output is correct |
40 |
Correct |
75 ms |
61640 KB |
Output is correct |
41 |
Correct |
75 ms |
61772 KB |
Output is correct |
42 |
Correct |
46 ms |
59380 KB |
Output is correct |
43 |
Correct |
56 ms |
59340 KB |
Output is correct |
44 |
Correct |
71 ms |
59492 KB |
Output is correct |
45 |
Correct |
98 ms |
65596 KB |
Output is correct |
46 |
Correct |
96 ms |
65660 KB |
Output is correct |
47 |
Correct |
320 ms |
115444 KB |
Output is correct |
48 |
Correct |
284 ms |
159228 KB |
Output is correct |
49 |
Correct |
273 ms |
168792 KB |
Output is correct |
50 |
Correct |
313 ms |
179816 KB |
Output is correct |
51 |
Correct |
417 ms |
192652 KB |
Output is correct |
52 |
Correct |
435 ms |
192832 KB |
Output is correct |
53 |
Correct |
375 ms |
189088 KB |
Output is correct |
54 |
Correct |
317 ms |
187324 KB |
Output is correct |
55 |
Correct |
331 ms |
187312 KB |
Output is correct |
56 |
Correct |
338 ms |
188636 KB |
Output is correct |
57 |
Correct |
580 ms |
187492 KB |
Output is correct |
58 |
Correct |
339 ms |
187964 KB |
Output is correct |
59 |
Correct |
396 ms |
188148 KB |
Output is correct |
60 |
Correct |
403 ms |
188988 KB |
Output is correct |
61 |
Correct |
439 ms |
188644 KB |
Output is correct |
62 |
Correct |
448 ms |
193176 KB |
Output is correct |
63 |
Correct |
490 ms |
222940 KB |
Output is correct |
64 |
Correct |
611 ms |
236004 KB |
Output is correct |
65 |
Correct |
636 ms |
245048 KB |
Output is correct |
66 |
Execution timed out |
1054 ms |
257564 KB |
Time limit exceeded |
67 |
Halted |
0 ms |
0 KB |
- |