// Need to git gud and reach 1900+
#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
#define all(s) s.begin(), s.end()
#define ok puts("ok")
#define ll long long
#define pb push_back
#define mk make_pair
#define fr first
#define sc second
#define vi vector < int >
#define pi pair < int, int >
#define prev prev123
#define next next123
#define pow pow123
#define left left123
#define right right123
const int N = 30007;
const int M = 5e6 + 3e5 + 7;
const int INF = 1e9 + 7;
pi a[N];
int d[M];
int m, n, s, f;
vector < pi > g[M];
main(){ // If you don't know what to do, check the text box at the bottom
cin >> m >> n;
for (int i = 1; i <= n; i++){
scanf("%d%d", &a[i].fr, &a[i].sc);
a[i].fr++;
}
s = a[1].fr, f = a[2].fr;
sort(a + 1, a + n + 1);
int k = unique(a + 1, a + n + 1) - a;
for (int i = 1; i < k; i++){
if (a[i].sc <= 173)
g[a[i].fr].pb(mk(m + (a[i].fr - 1) * 173 + a[i].sc, 0));
else {
int pos = a[i].fr, pw = a[i].sc, c = 0;
while (pos + pw <= m){
pos += pw; c++;
g[a[i].fr].pb(mk(pos, c));
}
pos = a[i].fr, c = 0;
while (pos - pw > 0){
pos -= pw; c++;
g[a[i].fr].pb(mk(pos, c));
}
}
}
for (int i = 1; i <= m; i++){
for (int j = 1; j <= 173; j++){
if (i + j <= m){
g[m + (i - 1) * 173 + j].pb(mk(m + (i + j - 1) * 173 + j, 1));
g[m + (i - 1) * 173 + j].pb(mk(i + j, 1));
}
if (i - j > 0){
g[m + (i - 1) * 173 + j].pb(mk(m + (i - j - 1) * 173 + j, 1));
g[m + (i - 1) * 173 + j].pb(mk(i - j, 1));
}
}
}
priority_queue < pi > pq;
pq.push(mk(0, s));
memset(d, 0x3f3f3f3f, sizeof(d));
d[s] = 0;
while (!pq.empty()){
int w = -pq.top().fr, v = pq.top().sc;
pq.pop();
if (d[v] < w)
continue;
for (pi to : g[v]){
if (d[to.fr] > d[v] + to.sc){
d[to.fr] = d[v] + to.sc;
pq.push(mk(-d[to.fr], to.fr));
}
}
}
if (d[f] != d[0])
printf("%d", d[f]);
else
puts("-1");
}
/*
Totally not inspired by BenQ's template
Things you should do:
1. Look for stupid typos in code e.g 1 instead of -1 etc
2. Check if there is no infinite loops
3. "Measure twice, cut once"
4. Stay focused
*/
Compilation message
skyscraper.cpp:33:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main(){ // If you don't know what to do, check the text box at the bottom
^
skyscraper.cpp: In function 'int main()':
skyscraper.cpp:36:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &a[i].fr, &a[i].sc);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
157 ms |
145576 KB |
Output is correct |
2 |
Correct |
157 ms |
145656 KB |
Output is correct |
3 |
Correct |
155 ms |
145528 KB |
Output is correct |
4 |
Correct |
156 ms |
145528 KB |
Output is correct |
5 |
Correct |
156 ms |
145528 KB |
Output is correct |
6 |
Correct |
152 ms |
145552 KB |
Output is correct |
7 |
Correct |
157 ms |
145528 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
154 ms |
145528 KB |
Output is correct |
2 |
Correct |
155 ms |
145524 KB |
Output is correct |
3 |
Correct |
204 ms |
145636 KB |
Output is correct |
4 |
Correct |
157 ms |
145600 KB |
Output is correct |
5 |
Correct |
156 ms |
145656 KB |
Output is correct |
6 |
Correct |
151 ms |
145524 KB |
Output is correct |
7 |
Correct |
157 ms |
145700 KB |
Output is correct |
8 |
Correct |
195 ms |
145532 KB |
Output is correct |
9 |
Correct |
153 ms |
145580 KB |
Output is correct |
10 |
Correct |
153 ms |
145784 KB |
Output is correct |
11 |
Correct |
160 ms |
145916 KB |
Output is correct |
12 |
Correct |
158 ms |
145800 KB |
Output is correct |
13 |
Correct |
159 ms |
145808 KB |
Output is correct |
14 |
Correct |
159 ms |
145912 KB |
Output is correct |
15 |
Correct |
153 ms |
145912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
152 ms |
145660 KB |
Output is correct |
2 |
Correct |
154 ms |
145568 KB |
Output is correct |
3 |
Correct |
152 ms |
145528 KB |
Output is correct |
4 |
Correct |
158 ms |
145472 KB |
Output is correct |
5 |
Correct |
151 ms |
145632 KB |
Output is correct |
6 |
Correct |
151 ms |
145528 KB |
Output is correct |
7 |
Correct |
153 ms |
145568 KB |
Output is correct |
8 |
Correct |
155 ms |
145528 KB |
Output is correct |
9 |
Correct |
170 ms |
145784 KB |
Output is correct |
10 |
Correct |
155 ms |
145800 KB |
Output is correct |
11 |
Correct |
153 ms |
146040 KB |
Output is correct |
12 |
Correct |
160 ms |
145784 KB |
Output is correct |
13 |
Correct |
152 ms |
145864 KB |
Output is correct |
14 |
Correct |
155 ms |
146040 KB |
Output is correct |
15 |
Correct |
155 ms |
145912 KB |
Output is correct |
16 |
Correct |
155 ms |
146608 KB |
Output is correct |
17 |
Correct |
177 ms |
151132 KB |
Output is correct |
18 |
Correct |
209 ms |
159352 KB |
Output is correct |
19 |
Correct |
216 ms |
161528 KB |
Output is correct |
20 |
Correct |
219 ms |
161356 KB |
Output is correct |
21 |
Correct |
164 ms |
148344 KB |
Output is correct |
22 |
Correct |
206 ms |
159580 KB |
Output is correct |
23 |
Correct |
208 ms |
158116 KB |
Output is correct |
24 |
Correct |
218 ms |
160632 KB |
Output is correct |
25 |
Correct |
220 ms |
161568 KB |
Output is correct |
26 |
Correct |
219 ms |
161460 KB |
Output is correct |
27 |
Correct |
214 ms |
161400 KB |
Output is correct |
28 |
Correct |
217 ms |
161528 KB |
Output is correct |
29 |
Correct |
229 ms |
161368 KB |
Output is correct |
30 |
Correct |
216 ms |
161320 KB |
Output is correct |
31 |
Correct |
221 ms |
161392 KB |
Output is correct |
32 |
Correct |
220 ms |
161376 KB |
Output is correct |
33 |
Correct |
240 ms |
161504 KB |
Output is correct |
34 |
Correct |
241 ms |
161400 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
153 ms |
145544 KB |
Output is correct |
2 |
Correct |
154 ms |
145528 KB |
Output is correct |
3 |
Correct |
184 ms |
145524 KB |
Output is correct |
4 |
Correct |
151 ms |
145532 KB |
Output is correct |
5 |
Correct |
152 ms |
145656 KB |
Output is correct |
6 |
Correct |
150 ms |
145528 KB |
Output is correct |
7 |
Correct |
151 ms |
145528 KB |
Output is correct |
8 |
Correct |
154 ms |
145528 KB |
Output is correct |
9 |
Correct |
151 ms |
145660 KB |
Output is correct |
10 |
Correct |
153 ms |
145944 KB |
Output is correct |
11 |
Correct |
153 ms |
145956 KB |
Output is correct |
12 |
Correct |
153 ms |
145784 KB |
Output is correct |
13 |
Correct |
152 ms |
145912 KB |
Output is correct |
14 |
Correct |
152 ms |
145884 KB |
Output is correct |
15 |
Correct |
154 ms |
145904 KB |
Output is correct |
16 |
Correct |
156 ms |
146608 KB |
Output is correct |
17 |
Correct |
181 ms |
151212 KB |
Output is correct |
18 |
Correct |
205 ms |
159264 KB |
Output is correct |
19 |
Correct |
211 ms |
161352 KB |
Output is correct |
20 |
Correct |
215 ms |
161540 KB |
Output is correct |
21 |
Correct |
164 ms |
148344 KB |
Output is correct |
22 |
Correct |
206 ms |
159608 KB |
Output is correct |
23 |
Correct |
205 ms |
158276 KB |
Output is correct |
24 |
Correct |
217 ms |
160536 KB |
Output is correct |
25 |
Correct |
218 ms |
161544 KB |
Output is correct |
26 |
Correct |
219 ms |
161272 KB |
Output is correct |
27 |
Correct |
218 ms |
161400 KB |
Output is correct |
28 |
Correct |
223 ms |
161564 KB |
Output is correct |
29 |
Correct |
230 ms |
161504 KB |
Output is correct |
30 |
Correct |
218 ms |
161272 KB |
Output is correct |
31 |
Correct |
220 ms |
161280 KB |
Output is correct |
32 |
Correct |
222 ms |
161508 KB |
Output is correct |
33 |
Correct |
245 ms |
161568 KB |
Output is correct |
34 |
Correct |
245 ms |
161400 KB |
Output is correct |
35 |
Correct |
229 ms |
157524 KB |
Output is correct |
36 |
Correct |
195 ms |
154076 KB |
Output is correct |
37 |
Correct |
263 ms |
161884 KB |
Output is correct |
38 |
Correct |
262 ms |
162500 KB |
Output is correct |
39 |
Correct |
260 ms |
162488 KB |
Output is correct |
40 |
Correct |
259 ms |
162552 KB |
Output is correct |
41 |
Correct |
266 ms |
162672 KB |
Output is correct |
42 |
Correct |
224 ms |
161784 KB |
Output is correct |
43 |
Correct |
226 ms |
161784 KB |
Output is correct |
44 |
Correct |
222 ms |
161820 KB |
Output is correct |
45 |
Correct |
307 ms |
163820 KB |
Output is correct |
46 |
Correct |
308 ms |
163736 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
153 ms |
145748 KB |
Output is correct |
2 |
Correct |
153 ms |
145528 KB |
Output is correct |
3 |
Correct |
159 ms |
145504 KB |
Output is correct |
4 |
Correct |
156 ms |
145488 KB |
Output is correct |
5 |
Correct |
159 ms |
145528 KB |
Output is correct |
6 |
Correct |
152 ms |
145528 KB |
Output is correct |
7 |
Correct |
151 ms |
145524 KB |
Output is correct |
8 |
Correct |
151 ms |
145532 KB |
Output is correct |
9 |
Correct |
150 ms |
145564 KB |
Output is correct |
10 |
Correct |
158 ms |
145936 KB |
Output is correct |
11 |
Correct |
157 ms |
145856 KB |
Output is correct |
12 |
Correct |
153 ms |
145784 KB |
Output is correct |
13 |
Correct |
155 ms |
145784 KB |
Output is correct |
14 |
Correct |
344 ms |
145888 KB |
Output is correct |
15 |
Correct |
152 ms |
145916 KB |
Output is correct |
16 |
Correct |
156 ms |
146664 KB |
Output is correct |
17 |
Correct |
178 ms |
151160 KB |
Output is correct |
18 |
Correct |
206 ms |
159280 KB |
Output is correct |
19 |
Correct |
209 ms |
161432 KB |
Output is correct |
20 |
Correct |
210 ms |
161400 KB |
Output is correct |
21 |
Correct |
161 ms |
148216 KB |
Output is correct |
22 |
Correct |
205 ms |
159608 KB |
Output is correct |
23 |
Correct |
201 ms |
158072 KB |
Output is correct |
24 |
Correct |
212 ms |
160604 KB |
Output is correct |
25 |
Correct |
211 ms |
161400 KB |
Output is correct |
26 |
Correct |
217 ms |
161372 KB |
Output is correct |
27 |
Correct |
212 ms |
161272 KB |
Output is correct |
28 |
Correct |
221 ms |
161400 KB |
Output is correct |
29 |
Correct |
226 ms |
161476 KB |
Output is correct |
30 |
Correct |
213 ms |
161272 KB |
Output is correct |
31 |
Correct |
221 ms |
161528 KB |
Output is correct |
32 |
Correct |
217 ms |
161400 KB |
Output is correct |
33 |
Correct |
243 ms |
161400 KB |
Output is correct |
34 |
Correct |
240 ms |
161368 KB |
Output is correct |
35 |
Correct |
224 ms |
157548 KB |
Output is correct |
36 |
Correct |
189 ms |
154232 KB |
Output is correct |
37 |
Correct |
258 ms |
161860 KB |
Output is correct |
38 |
Correct |
259 ms |
162600 KB |
Output is correct |
39 |
Correct |
259 ms |
162688 KB |
Output is correct |
40 |
Correct |
261 ms |
162424 KB |
Output is correct |
41 |
Correct |
276 ms |
162808 KB |
Output is correct |
42 |
Correct |
221 ms |
161912 KB |
Output is correct |
43 |
Correct |
222 ms |
161784 KB |
Output is correct |
44 |
Correct |
222 ms |
161784 KB |
Output is correct |
45 |
Correct |
307 ms |
163932 KB |
Output is correct |
46 |
Correct |
309 ms |
163832 KB |
Output is correct |
47 |
Correct |
773 ms |
249860 KB |
Output is correct |
48 |
Runtime error |
609 ms |
262148 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
49 |
Halted |
0 ms |
0 KB |
- |