# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
945363 |
2024-03-13T16:54:32 Z |
rainboy |
Taxis (POI13_tak) |
C |
|
119 ms |
4228 KB |
#include <stdio.h>
#define N 500000
#define INF 0x3f3f3f3f
unsigned int X = 12345;
int rand_() {
return (X *= 3) >> 1;
}
void sort(long long *dd, int l, int r) {
while (l < r) {
int i = l, j = l, k = r;
long long d = dd[l + rand_() % (r - l)], tmp;
while (j < k)
if (dd[j] == d)
j++;
else if (dd[j] < d) {
tmp = dd[i], dd[i] = dd[j], dd[j] = tmp;
i++, j++;
} else {
k--;
tmp = dd[j], dd[j] = dd[k], dd[k] = tmp;
}
sort(dd, l, i);
l = k;
}
}
int main() {
static long long dd[N];
int n, i;
long long m, l, l_, x;
scanf("%lld%lld%d", &m, &l, &n);
for (i = 0; i < n; i++)
scanf("%lld", &dd[i]);
sort(dd, 0, n);
x = 0;
for (i = n - 1; i >= 0 && x < l; i--) {
if (l - x > dd[i]) {
printf("0\n");
return 0;
}
x += dd[i] - (l - x);
}
if (x < l) {
printf("0\n");
return 0;
}
if (x >= m) {
printf("%d\n", n - 1 - i);
return 0;
}
if (i >= 0 && dd[i] >= m - l) {
printf("%d\n", n - i);
return 0;
}
i = 0;
while (i < n && dd[i] < m - l)
i++;
if (i == n) {
printf("0\n");
return 0;
}
l_ = l - (dd[i] - (m - l)) / 2;
n--;
while (i < n)
dd[i] = dd[i + 1], i++;
x = 0;
for (i = n - 1; i >= 0 && x < l_; i--) {
if (l - x > dd[i]) {
printf("0\n");
return 0;
}
x += dd[i] - (l - x);
}
printf("%d\n", x < l_ ? 0 : n - i);
return 0;
}
Compilation message
tak.c: In function 'main':
tak.c:37:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
37 | scanf("%lld%lld%d", &m, &l, &n);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tak.c:39:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
39 | scanf("%lld", &dd[i]);
| ^~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
648 KB |
Output is correct |
2 |
Correct |
2 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
14 ms |
860 KB |
Output is correct |
2 |
Correct |
14 ms |
1020 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
1352 KB |
Output is correct |
2 |
Correct |
50 ms |
3740 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
65 ms |
3596 KB |
Output is correct |
2 |
Correct |
79 ms |
3420 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
119 ms |
4228 KB |
Output is correct |
2 |
Correct |
93 ms |
3584 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
90 ms |
4120 KB |
Output is correct |
2 |
Correct |
115 ms |
4176 KB |
Output is correct |