# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
945356 |
2024-03-13T16:45:46 Z |
rainboy |
Taxis (POI13_tak) |
C |
|
125 ms |
13140 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, 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;
}
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 |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
432 KB |
Output is correct |
# |
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 |
428 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Incorrect |
1 ms |
476 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
600 KB |
Output is correct |
2 |
Correct |
3 ms |
600 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
19 ms |
860 KB |
Output is correct |
2 |
Incorrect |
14 ms |
860 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
1244 KB |
Output is correct |
2 |
Incorrect |
49 ms |
3592 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
65 ms |
3420 KB |
Output is correct |
2 |
Incorrect |
76 ms |
9680 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
119 ms |
4180 KB |
Output is correct |
2 |
Incorrect |
92 ms |
3416 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
88 ms |
4308 KB |
Output is correct |
2 |
Incorrect |
125 ms |
13140 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |