Submission #72815885
Source Code Expand
Copy
#include <stdio.h>#include <stdlib.h>int cmp(const void* x, const void* y) {int a = *(const int*)x, b = *(const int*)y;return (a > b) - (a < b);}int N, M;int P[1024];int scores[1024 * 1024];int main(void) {int i, j;int num = 0;int ans = 0;if (scanf("%d%d", &N, &M) != 2) return 1;for (i = 0; i < N; i++) {if (scanf("%d", &P[i]) != 1) return 1;}
#include <stdio.h>
#include <stdlib.h>
int cmp(const void* x, const void* y) {
int a = *(const int*)x, b = *(const int*)y;
return (a > b) - (a < b);
}
int N, M;
int P[1024];
int scores[1024 * 1024];
int main(void) {
int i, j;
int num = 0;
int ans = 0;
if (scanf("%d%d", &N, &M) != 2) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d", &P[i]) != 1) return 1;
}
for (i = 0; i < N; i++) {
for (j = i; j < N; j++) {
scores[num++] = P[i] + P[j];
}
}
for (i = 0; i < N; i++) {
scores[num++] = P[i];
}
scores[num++] = 0;
qsort(scores, num, sizeof(*scores), cmp);
for (i = 0; i < num && scores[i] <= M; i++) {
int target = M - scores[i], candidate;
int le = 0, g = num;
while (le + 1 < g) {
int m = le + (g - le) / 2;
if (scores[m] <= target) le = m; else g = m;
}
candidate = scores[i] + scores[le];
if (ans < candidate) ans = candidate;
}
printf("%d\n", ans);
return 0;
}
/*
半分全列挙
*/
Submission Info
| Submission Time | |
|---|---|
| Task | C - ダーツ |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 20 |
| Code Size | 993 Byte |
| Status | AC |
| Exec Time | 77 ms |
| Memory | 5536 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
| Status |
|
|
|
|
|
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| set06 | data6 |
| set07 | data7 |
| set08 | data8 |
| set09 | data9 |
| set10 | data10 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 1 ms | 1696 KiB |
| data10 | AC | 72 ms | 5412 KiB |
| data2 | AC | 1 ms | 1688 KiB |
| data3 | AC | 6 ms | 2060 KiB |
| data4 | AC | 6 ms | 2060 KiB |
| data5 | AC | 5 ms | 1996 KiB |
| data6 | AC | 68 ms | 5500 KiB |
| data7 | AC | 77 ms | 5536 KiB |
| data8 | AC | 71 ms | 5532 KiB |
| data9 | AC | 72 ms | 5524 KiB |