Submission #67395610


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 ? -1 : a > b;
}
int N;
int S[212345];
int main(void) {
int T, tc;
if (scanf("%d", &T) != 1) return 1;
for (tc = 0; tc < T; tc++) {
int i;
if (scanf("%d", &N) != 1) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d", &S[i]) != 1) return 1;
}
if (S[0] * 2 >= S[N - 1]) {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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 ? -1 : a > b;
}

int N;
int S[212345];

int main(void) {
	int T, tc;
	if (scanf("%d", &T) != 1) return 1;
	for (tc = 0; tc < T; tc++) {
		int i;
		if (scanf("%d", &N) != 1) return 1;
		for (i = 0; i < N; i++) {
			if (scanf("%d", &S[i]) != 1) return 1;
		}
		if (S[0] * 2 >= S[N - 1]) {
			puts("2");
		} else if (N == 2) {
			puts("-1");
		} else {
			int cur = 0, cnt = 3, ok = 0;
			qsort(S + 1, N - 2, sizeof(*S), cmp);
			for (i = 1; i < N - 1; i++) {
				if (S[cur] * 2 < S[i]) {
					/* 次は、今置いてあるドミノで倒せない */
					if (i - 1 == cur || S[i - 1] * 2 < S[i]) {
						/* 今置いてあるドミノと次の間にドミノが無い場合、詰み */
						/* 1個前のドミノでこのドミノが倒せない場合、詰み */
						break;
					} else {
						/* 今置いてあるドミノの1個前のドミノを置く */
						cur = i - 1;
						cnt++;
					}
				}
				if (S[i] * 2 >= S[N - 1]) {
					/* このドミノでドミノNが倒せる */
					ok = 1;
					break;
				}
			}
			printf("%d\n", ok ? cnt : -1);
		}
	}
	return 0;
}

Submission Info

Submission Time
Task C - Giant Domino
User mikecat
Language C (gcc 12.2.0)
Score 300
Code Size 1272 Byte
Status AC
Exec Time 39 ms
Memory 3172 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 1
AC × 32
Set Name Test Cases
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 02_random_11.txt, 02_random_12.txt, 02_random_13.txt, 02_random_14.txt, 02_random_15.txt, 02_random_16.txt, 02_random_17.txt, 02_random_18.txt, 02_random_19.txt, 03_corner_00.txt, 03_corner_01.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 1704 KiB
01_small_00.txt AC 14 ms 1736 KiB
01_small_01.txt AC 12 ms 1624 KiB
01_small_02.txt AC 10 ms 1668 KiB
01_small_03.txt AC 29 ms 1580 KiB
01_small_04.txt AC 28 ms 1736 KiB
01_small_05.txt AC 26 ms 1628 KiB
01_small_06.txt AC 25 ms 1740 KiB
01_small_07.txt AC 24 ms 1600 KiB
01_small_08.txt AC 23 ms 1652 KiB
02_random_00.txt AC 11 ms 1976 KiB
02_random_01.txt AC 21 ms 2376 KiB
02_random_02.txt AC 21 ms 2428 KiB
02_random_03.txt AC 31 ms 2548 KiB
02_random_04.txt AC 21 ms 2296 KiB
02_random_05.txt AC 37 ms 3124 KiB
02_random_06.txt AC 38 ms 3088 KiB
02_random_07.txt AC 39 ms 3076 KiB
02_random_08.txt AC 34 ms 2852 KiB
02_random_09.txt AC 38 ms 3152 KiB
02_random_10.txt AC 39 ms 3168 KiB
02_random_11.txt AC 30 ms 2560 KiB
02_random_12.txt AC 39 ms 3072 KiB
02_random_13.txt AC 39 ms 3172 KiB
02_random_14.txt AC 33 ms 2900 KiB
02_random_15.txt AC 38 ms 3160 KiB
02_random_16.txt AC 39 ms 3172 KiB
02_random_17.txt AC 34 ms 2840 KiB
02_random_18.txt AC 38 ms 3152 KiB
02_random_19.txt AC 38 ms 3112 KiB
03_corner_00.txt AC 1 ms 1632 KiB
03_corner_01.txt AC 1 ms 1628 KiB


2025-07-07 (Mon)
01:29:56 +09:00