// 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 = 6e6 + 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 <= 175)
g[a[i].fr].pb(mk(m + (a[i].fr - 1) * 175 + 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 <= 175; j++){
if (i + j <= m){
g[m + (i - 1) * 175 + j].pb(mk(m + (i + j - 1) * 175 + j, 1));
g[m + (i - 1) * 175 + j].pb(mk(i + j, 1));
}
if (i - j > 0){
g[m + (i - 1) * 175 + j].pb(mk(m + (i - j - 1) * 175 + j, 1));
g[m + (i - 1) * 175 + 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 |
171 ms |
164728 KB |
Output is correct |
2 |
Correct |
170 ms |
164856 KB |
Output is correct |
3 |
Correct |
170 ms |
164856 KB |
Output is correct |
4 |
Correct |
177 ms |
164936 KB |
Output is correct |
5 |
Correct |
177 ms |
164832 KB |
Output is correct |
6 |
Correct |
168 ms |
164708 KB |
Output is correct |
7 |
Correct |
179 ms |
164876 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
174 ms |
164624 KB |
Output is correct |
2 |
Correct |
172 ms |
164856 KB |
Output is correct |
3 |
Correct |
170 ms |
164772 KB |
Output is correct |
4 |
Correct |
173 ms |
164852 KB |
Output is correct |
5 |
Correct |
170 ms |
164760 KB |
Output is correct |
6 |
Correct |
177 ms |
164696 KB |
Output is correct |
7 |
Correct |
169 ms |
164676 KB |
Output is correct |
8 |
Correct |
170 ms |
164700 KB |
Output is correct |
9 |
Correct |
178 ms |
164856 KB |
Output is correct |
10 |
Correct |
174 ms |
165004 KB |
Output is correct |
11 |
Correct |
177 ms |
164992 KB |
Output is correct |
12 |
Correct |
176 ms |
165112 KB |
Output is correct |
13 |
Correct |
177 ms |
164984 KB |
Output is correct |
14 |
Correct |
174 ms |
164984 KB |
Output is correct |
15 |
Correct |
177 ms |
165008 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
174 ms |
164668 KB |
Output is correct |
2 |
Correct |
175 ms |
164732 KB |
Output is correct |
3 |
Correct |
176 ms |
164764 KB |
Output is correct |
4 |
Correct |
175 ms |
164712 KB |
Output is correct |
5 |
Correct |
176 ms |
164816 KB |
Output is correct |
6 |
Correct |
175 ms |
164700 KB |
Output is correct |
7 |
Correct |
176 ms |
164728 KB |
Output is correct |
8 |
Correct |
170 ms |
164720 KB |
Output is correct |
9 |
Correct |
171 ms |
164840 KB |
Output is correct |
10 |
Correct |
175 ms |
164916 KB |
Output is correct |
11 |
Correct |
175 ms |
164984 KB |
Output is correct |
12 |
Correct |
176 ms |
165020 KB |
Output is correct |
13 |
Correct |
176 ms |
165016 KB |
Output is correct |
14 |
Correct |
172 ms |
165084 KB |
Output is correct |
15 |
Correct |
177 ms |
164984 KB |
Output is correct |
16 |
Correct |
181 ms |
165880 KB |
Output is correct |
17 |
Correct |
201 ms |
170644 KB |
Output is correct |
18 |
Correct |
227 ms |
178680 KB |
Output is correct |
19 |
Correct |
234 ms |
180688 KB |
Output is correct |
20 |
Correct |
238 ms |
180856 KB |
Output is correct |
21 |
Correct |
182 ms |
167544 KB |
Output is correct |
22 |
Correct |
232 ms |
178936 KB |
Output is correct |
23 |
Correct |
228 ms |
177528 KB |
Output is correct |
24 |
Correct |
234 ms |
179960 KB |
Output is correct |
25 |
Correct |
241 ms |
180728 KB |
Output is correct |
26 |
Correct |
235 ms |
180728 KB |
Output is correct |
27 |
Correct |
252 ms |
180688 KB |
Output is correct |
28 |
Correct |
239 ms |
180796 KB |
Output is correct |
29 |
Correct |
305 ms |
180764 KB |
Output is correct |
30 |
Correct |
234 ms |
180648 KB |
Output is correct |
31 |
Correct |
243 ms |
180796 KB |
Output is correct |
32 |
Correct |
238 ms |
180692 KB |
Output is correct |
33 |
Correct |
266 ms |
180856 KB |
Output is correct |
34 |
Correct |
266 ms |
180768 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
174 ms |
164732 KB |
Output is correct |
2 |
Correct |
175 ms |
164712 KB |
Output is correct |
3 |
Correct |
171 ms |
164728 KB |
Output is correct |
4 |
Correct |
171 ms |
164728 KB |
Output is correct |
5 |
Correct |
175 ms |
164728 KB |
Output is correct |
6 |
Correct |
176 ms |
164684 KB |
Output is correct |
7 |
Correct |
176 ms |
164740 KB |
Output is correct |
8 |
Correct |
177 ms |
164828 KB |
Output is correct |
9 |
Correct |
177 ms |
164856 KB |
Output is correct |
10 |
Correct |
178 ms |
164984 KB |
Output is correct |
11 |
Correct |
171 ms |
164984 KB |
Output is correct |
12 |
Correct |
173 ms |
165032 KB |
Output is correct |
13 |
Correct |
177 ms |
164984 KB |
Output is correct |
14 |
Correct |
175 ms |
165012 KB |
Output is correct |
15 |
Correct |
178 ms |
165084 KB |
Output is correct |
16 |
Correct |
178 ms |
165968 KB |
Output is correct |
17 |
Correct |
197 ms |
170360 KB |
Output is correct |
18 |
Correct |
225 ms |
178680 KB |
Output is correct |
19 |
Correct |
235 ms |
180876 KB |
Output is correct |
20 |
Correct |
232 ms |
180896 KB |
Output is correct |
21 |
Correct |
181 ms |
167408 KB |
Output is correct |
22 |
Correct |
225 ms |
178912 KB |
Output is correct |
23 |
Correct |
221 ms |
177400 KB |
Output is correct |
24 |
Correct |
234 ms |
179952 KB |
Output is correct |
25 |
Correct |
234 ms |
180792 KB |
Output is correct |
26 |
Correct |
233 ms |
180828 KB |
Output is correct |
27 |
Correct |
242 ms |
180740 KB |
Output is correct |
28 |
Correct |
235 ms |
180844 KB |
Output is correct |
29 |
Correct |
247 ms |
180728 KB |
Output is correct |
30 |
Correct |
266 ms |
180608 KB |
Output is correct |
31 |
Correct |
238 ms |
180728 KB |
Output is correct |
32 |
Correct |
238 ms |
180812 KB |
Output is correct |
33 |
Correct |
259 ms |
180820 KB |
Output is correct |
34 |
Correct |
295 ms |
180768 KB |
Output is correct |
35 |
Correct |
243 ms |
176956 KB |
Output is correct |
36 |
Correct |
206 ms |
173432 KB |
Output is correct |
37 |
Correct |
276 ms |
181240 KB |
Output is correct |
38 |
Correct |
274 ms |
181880 KB |
Output is correct |
39 |
Correct |
278 ms |
181972 KB |
Output is correct |
40 |
Correct |
283 ms |
181880 KB |
Output is correct |
41 |
Correct |
287 ms |
181920 KB |
Output is correct |
42 |
Correct |
245 ms |
181136 KB |
Output is correct |
43 |
Correct |
244 ms |
181084 KB |
Output is correct |
44 |
Correct |
243 ms |
181240 KB |
Output is correct |
45 |
Correct |
343 ms |
183164 KB |
Output is correct |
46 |
Correct |
333 ms |
183136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
174 ms |
164688 KB |
Output is correct |
2 |
Correct |
175 ms |
164988 KB |
Output is correct |
3 |
Correct |
175 ms |
164728 KB |
Output is correct |
4 |
Correct |
176 ms |
164712 KB |
Output is correct |
5 |
Correct |
175 ms |
164728 KB |
Output is correct |
6 |
Correct |
178 ms |
164840 KB |
Output is correct |
7 |
Correct |
175 ms |
164728 KB |
Output is correct |
8 |
Correct |
174 ms |
164732 KB |
Output is correct |
9 |
Correct |
176 ms |
164856 KB |
Output is correct |
10 |
Correct |
178 ms |
164956 KB |
Output is correct |
11 |
Correct |
180 ms |
165084 KB |
Output is correct |
12 |
Correct |
180 ms |
164972 KB |
Output is correct |
13 |
Correct |
178 ms |
164984 KB |
Output is correct |
14 |
Correct |
172 ms |
165008 KB |
Output is correct |
15 |
Correct |
178 ms |
165060 KB |
Output is correct |
16 |
Correct |
178 ms |
165880 KB |
Output is correct |
17 |
Correct |
205 ms |
170588 KB |
Output is correct |
18 |
Correct |
228 ms |
178680 KB |
Output is correct |
19 |
Correct |
235 ms |
180704 KB |
Output is correct |
20 |
Correct |
233 ms |
180728 KB |
Output is correct |
21 |
Correct |
187 ms |
167416 KB |
Output is correct |
22 |
Correct |
222 ms |
178936 KB |
Output is correct |
23 |
Correct |
226 ms |
177476 KB |
Output is correct |
24 |
Correct |
238 ms |
180112 KB |
Output is correct |
25 |
Correct |
237 ms |
180728 KB |
Output is correct |
26 |
Correct |
239 ms |
180732 KB |
Output is correct |
27 |
Correct |
245 ms |
180856 KB |
Output is correct |
28 |
Correct |
244 ms |
180728 KB |
Output is correct |
29 |
Correct |
247 ms |
180772 KB |
Output is correct |
30 |
Correct |
243 ms |
180856 KB |
Output is correct |
31 |
Correct |
246 ms |
180728 KB |
Output is correct |
32 |
Correct |
244 ms |
180700 KB |
Output is correct |
33 |
Correct |
270 ms |
180728 KB |
Output is correct |
34 |
Correct |
265 ms |
180796 KB |
Output is correct |
35 |
Correct |
243 ms |
176888 KB |
Output is correct |
36 |
Correct |
214 ms |
173304 KB |
Output is correct |
37 |
Correct |
297 ms |
181208 KB |
Output is correct |
38 |
Correct |
280 ms |
181880 KB |
Output is correct |
39 |
Correct |
281 ms |
182008 KB |
Output is correct |
40 |
Correct |
282 ms |
182028 KB |
Output is correct |
41 |
Correct |
281 ms |
181880 KB |
Output is correct |
42 |
Correct |
245 ms |
181208 KB |
Output is correct |
43 |
Correct |
245 ms |
181116 KB |
Output is correct |
44 |
Correct |
244 ms |
181240 KB |
Output is correct |
45 |
Correct |
330 ms |
183160 KB |
Output is correct |
46 |
Correct |
333 ms |
183160 KB |
Output is correct |
47 |
Runtime error |
526 ms |
262148 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
48 |
Halted |
0 ms |
0 KB |
- |