提出 #77774990
ソースコード 拡げる
Copy
#include <stdio.h>#include <stdlib.h>struct nuno_s {int L, R;};int cmp(const void* x, const void* y) {struct nuno_s a = *(const struct nuno_s*)x, b = *(const struct nuno_s*)y;return((a.R > b.R) - (a.R < b.R)) * 2 +((a.L > b.L) - (a.L < b.L));}int N, K;struct nuno_s nuno[212345];int main(void) {int i;int yes = -1, no = 1010101010;if (scanf("%d%d", &N, &K) != 2) return 1;
#include <stdio.h>
#include <stdlib.h>
struct nuno_s {
int L, R;
};
int cmp(const void* x, const void* y) {
struct nuno_s a = *(const struct nuno_s*)x, b = *(const struct nuno_s*)y;
return
((a.R > b.R) - (a.R < b.R)) * 2 +
((a.L > b.L) - (a.L < b.L));
}
int N, K;
struct nuno_s nuno[212345];
int main(void) {
int i;
int yes = -1, no = 1010101010;
if (scanf("%d%d", &N, &K) != 2) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d%d", &nuno[i].L, &nuno[i].R) != 2) return 1;
}
qsort(nuno, N, sizeof(*nuno), cmp);
while (yes + 1 < no) {
int m = yes + (no - yes) / 2;
int cnt = 0;
int prev = -1010101010;
for (i = 0; i < N; i++) {
if (prev + m <= nuno[i].L) {
cnt++;
prev = nuno[i].R;
}
}
if (cnt >= K) yes = m; else no = m;
}
printf("%d\n", yes > 0 ? yes : -1);
return 0;
}
/*
確保する距離を決め打ち → 二分探索
R の小さい順に使える布を貪欲
*/
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Maximize the Gap |
| ユーザ | mikecat |
| 言語 | C23 (GCC 14.2.0) |
| 得点 | 400 |
| コード長 | 971 Byte |
| 結果 | AC |
| 実行時間 | 56 ms |
| メモリ | 4772 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 0 ms | 1596 KiB |
| 00_sample_01.txt | AC | 0 ms | 1648 KiB |
| 00_sample_02.txt | AC | 0 ms | 1636 KiB |
| 01_random_03.txt | AC | 47 ms | 4676 KiB |
| 01_random_04.txt | AC | 47 ms | 4772 KiB |
| 01_random_05.txt | AC | 47 ms | 4676 KiB |
| 01_random_06.txt | AC | 47 ms | 4652 KiB |
| 01_random_07.txt | AC | 47 ms | 4668 KiB |
| 01_random_08.txt | AC | 54 ms | 4668 KiB |
| 01_random_09.txt | AC | 54 ms | 4668 KiB |
| 01_random_10.txt | AC | 47 ms | 4572 KiB |
| 01_random_11.txt | AC | 47 ms | 4572 KiB |
| 01_random_12.txt | AC | 48 ms | 4652 KiB |
| 01_random_13.txt | AC | 47 ms | 4772 KiB |
| 01_random_14.txt | AC | 56 ms | 4668 KiB |
| 01_random_15.txt | AC | 53 ms | 4708 KiB |
| 01_random_16.txt | AC | 56 ms | 4772 KiB |
| 01_random_17.txt | AC | 56 ms | 4708 KiB |
| 01_random_18.txt | AC | 56 ms | 4708 KiB |
| 01_random_19.txt | AC | 56 ms | 4628 KiB |
| 01_random_20.txt | AC | 56 ms | 4708 KiB |
| 01_random_21.txt | AC | 56 ms | 4652 KiB |
| 01_random_22.txt | AC | 47 ms | 4648 KiB |
| 01_random_23.txt | AC | 49 ms | 4676 KiB |
| 01_random_24.txt | AC | 47 ms | 4772 KiB |
| 01_random_25.txt | AC | 0 ms | 1688 KiB |
| 01_random_26.txt | AC | 0 ms | 1648 KiB |