結果

問題 No.275 中央値を求めよ
ユーザー 綾地寧々綾地寧々
提出日時 2024-05-27 17:49:55
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 1,074 bytes
コンパイル時間 593 ms
コンパイル使用メモリ 31,104 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-05-27 17:49:59
合計ジャッジ時間 2,473 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,812 KB
testcase_01 AC 1 ms
6,944 KB
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 AC 1 ms
6,940 KB
testcase_12 AC 1 ms
6,944 KB
testcase_13 AC 1 ms
6,944 KB
testcase_14 WA -
testcase_15 WA -
testcase_16 RE -
testcase_17 RE -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 AC 1 ms
6,940 KB
testcase_31 WA -
testcase_32 WA -
testcase_33 WA -
testcase_34 WA -
testcase_35 WA -
testcase_36 WA -
testcase_37 WA -
testcase_38 WA -
testcase_39 WA -
testcase_40 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

int main ( void )
{
	uint16_t n, i, n_half;
	int16_t a[1000], sort_temp;
	int16_t sort_min, sort_max;
	uint16_t sort_min_index, sort_max_index;
	uint16_t sorted = 0u;

	scanf("%d", &n);
	for ( i = 0u; i < n; i++ ) {
		scanf("%d", &a[i]);
	}

	n_half = n / 2;

	while ( sorted < n_half ) {
		sort_min = 1000;
		sort_max = -1000;
		for ( i = sorted; i < n; i++ ) {
			if ( sort_min > a[i] ) {
				sort_min = a[i];
				sort_min_index = i;
			}
			if ( sort_max < a[i] ) {
				sort_max = a[i];
				sort_max_index = i;
			}
		}

		sort_temp = a[sort_min_index];
		a[sort_min_index] = a[sorted];
		a[sorted] = sort_temp;

		sort_temp = a[sort_max_index];
		a[sort_max_index] = a[n - 1 - sorted];
		a[n - 1 - sorted] = sort_temp;

		sorted ++;
	}

	for ( i = 0; i < n; i++ ) {
		if ( i > 0 ) {
			fprintf(stderr, ", ");
		}
		fprintf(stderr, "%d", a[i]);
	}
	fprintf(stderr, "\n");

	if ( n % 2 ) {
		printf("%d\n", a[n_half]);
	} else {
		printf("%.1f\n", ((float)a[n_half] + (float)a[n_half - 1]) / 2);
	}

	return 0;
}
0