#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define N 1000000
int *xx[N]; double *yy[N]; int cnt[N], cnt_[N], xx_[N], n; double k;
int crossover(int x1, double y1, int x2, double y2) {
int lower = x2, upper = n + 1;
while (upper - lower > 1) {
int x = (lower + upper) / 2;
if (y1 + pow(x - x1, k) >= y2 + pow(x - x2, k))
upper = x;
else
lower = x;
}
return upper;
}
void add(int a, double y) {
while (cnt[a] && crossover(xx[a][cnt[a] - 2], yy[a][cnt[a] - 2], xx[a][cnt[a] - 1], yy[a][cnt[a] - 1]) <= crossover(xx[a][cnt[a] - 1], yy[a][cnt[a] - 1], xx_[a], y))
cnt[a]--;
if (cnt[a] == cnt_[a]) {
xx[a] = (int *) realloc(xx[a], cnt_[a] * 2 * sizeof *xx[a]);
yy[a] = (double *) realloc(yy[a], cnt_[a] * 2 * sizeof *yy[a]);
cnt_[a] *= 2;
}
xx[a][cnt[a]] = xx_[a], yy[a][cnt[a]] = y, cnt[a]++;
xx_[a]++;
}
int main() {
int i, a;
double y;
scanf("%lf%d", &k, &n), k /= 2;
for (a = 0; a < n; a++) {
xx[a] = (int *) malloc((cnt_[a] = 2) * sizeof *xx[a]);
yy[a] = (double *) malloc((cnt_[a] = 2) * sizeof *yy[a]);
}
y = 0;
for (i = 0; i < n; i++) {
scanf("%d", &a), a--;
add(a, y);
while (cnt[a] && yy[a][cnt[a] - 1] + pow(xx_[a] - xx[a][cnt[a] - 1], k) <= yy[a][cnt[a] - 2] + pow(xx_[a] - xx[a][cnt[a] - 2], k))
cnt[a]--;
y = yy[a][cnt[a] - 1] + pow(xx_[a] - xx[a][cnt[a] - 1], k);
}
printf("%.9f\n", y);
return 0;
}
Compilation message
Main.cpp: In function 'int main()':
Main.cpp:39:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
39 | scanf("%lf%d", &k, &n), k /= 2;
| ~~~~~^~~~~~~~~~~~~~~~~
Main.cpp:46:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
46 | scanf("%d", &a), a--;
| ~~~~~^~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
0 ms |
212 KB |
Output is correct |
7 |
Correct |
0 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
352 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
352 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
352 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
0 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
352 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
352 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
0 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
12 ms |
660 KB |
Output is correct |
11 |
Correct |
16 ms |
684 KB |
Output is correct |
12 |
Correct |
8 ms |
596 KB |
Output is correct |
13 |
Correct |
8 ms |
724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3918 ms |
84400 KB |
Output is correct |
2 |
Correct |
4668 ms |
85288 KB |
Output is correct |
3 |
Correct |
1176 ms |
42288 KB |
Output is correct |
4 |
Correct |
2311 ms |
43488 KB |
Output is correct |
5 |
Correct |
1272 ms |
94680 KB |
Output is correct |
6 |
Correct |
2528 ms |
91504 KB |
Output is correct |
7 |
Correct |
2454 ms |
91564 KB |
Output is correct |
8 |
Correct |
2500 ms |
91480 KB |
Output is correct |
9 |
Correct |
2516 ms |
91472 KB |
Output is correct |
10 |
Correct |
2518 ms |
91472 KB |
Output is correct |
11 |
Correct |
2399 ms |
85148 KB |
Output is correct |
12 |
Correct |
2442 ms |
86232 KB |
Output is correct |
13 |
Correct |
2231 ms |
84436 KB |
Output is correct |
14 |
Correct |
4741 ms |
86560 KB |
Output is correct |
15 |
Correct |
4867 ms |
86448 KB |
Output is correct |
16 |
Correct |
4715 ms |
86472 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
0 ms |
212 KB |
Output is correct |
7 |
Correct |
0 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
352 KB |
Output is correct |
10 |
Correct |
1 ms |
340 KB |
Output is correct |
11 |
Correct |
0 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
352 KB |
Output is correct |
13 |
Correct |
1 ms |
340 KB |
Output is correct |
14 |
Correct |
0 ms |
212 KB |
Output is correct |
15 |
Correct |
1 ms |
340 KB |
Output is correct |
16 |
Correct |
1 ms |
340 KB |
Output is correct |
17 |
Correct |
1 ms |
340 KB |
Output is correct |
18 |
Correct |
12 ms |
660 KB |
Output is correct |
19 |
Correct |
16 ms |
684 KB |
Output is correct |
20 |
Correct |
8 ms |
596 KB |
Output is correct |
21 |
Correct |
8 ms |
724 KB |
Output is correct |
22 |
Correct |
3918 ms |
84400 KB |
Output is correct |
23 |
Correct |
4668 ms |
85288 KB |
Output is correct |
24 |
Correct |
1176 ms |
42288 KB |
Output is correct |
25 |
Correct |
2311 ms |
43488 KB |
Output is correct |
26 |
Correct |
1272 ms |
94680 KB |
Output is correct |
27 |
Correct |
2528 ms |
91504 KB |
Output is correct |
28 |
Correct |
2454 ms |
91564 KB |
Output is correct |
29 |
Correct |
2500 ms |
91480 KB |
Output is correct |
30 |
Correct |
2516 ms |
91472 KB |
Output is correct |
31 |
Correct |
2518 ms |
91472 KB |
Output is correct |
32 |
Correct |
2399 ms |
85148 KB |
Output is correct |
33 |
Correct |
2442 ms |
86232 KB |
Output is correct |
34 |
Correct |
2231 ms |
84436 KB |
Output is correct |
35 |
Correct |
4741 ms |
86560 KB |
Output is correct |
36 |
Correct |
4867 ms |
86448 KB |
Output is correct |
37 |
Correct |
4715 ms |
86472 KB |
Output is correct |
38 |
Correct |
1339 ms |
96992 KB |
Output is correct |
39 |
Correct |
4124 ms |
84508 KB |
Output is correct |
40 |
Correct |
4801 ms |
85304 KB |
Output is correct |
41 |
Correct |
1184 ms |
42384 KB |
Output is correct |
42 |
Correct |
2312 ms |
43484 KB |
Output is correct |
43 |
Correct |
1310 ms |
94736 KB |
Output is correct |
44 |
Correct |
2479 ms |
91544 KB |
Output is correct |
45 |
Correct |
2468 ms |
86136 KB |
Output is correct |
46 |
Correct |
2481 ms |
85240 KB |
Output is correct |
47 |
Correct |
2231 ms |
84376 KB |
Output is correct |
48 |
Correct |
4864 ms |
85360 KB |
Output is correct |
49 |
Correct |
4865 ms |
85704 KB |
Output is correct |
50 |
Correct |
4687 ms |
85668 KB |
Output is correct |