結果
| 問題 |
No.275 中央値を求めよ
|
| コンテスト | |
| ユーザー |
tmsb
|
| 提出日時 | 2018-10-20 22:00:23 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 819 bytes |
| コンパイル時間 | 214 ms |
| コンパイル使用メモリ | 30,336 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-19 02:58:17 |
| 合計ジャッジ時間 | 1,372 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 34 WA * 4 |
ソースコード
#include <stdio.h>
void QuickSort(int *, int, int);
int main(void)
{
int n, i, input_num[1000], idx;
float median;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &input_num[i]);
}
QuickSort(input_num, 0, n - 1);
idx = (n - 1) / 2;
median = (float)input_num[idx++];
if(n % 2 == 0 && n > 1){
while((int)median == input_num[idx]) idx++;
median += (float)input_num[idx];
median = median / 2;
}
printf("%0.1f\n", median);
return 0;
}
void QuickSort(int *a, int first, int last)
{
int i, j, x, t;
x = a[(first + last) / 2];
i = first; j = last;
for( ; ; ){
while(a[i] < x) i++;
while(x < a[j]) j--;
if(i >= j) break;
t = a[i]; a[i] = a[j]; a[j] = t;
i++; j--;
}
if(first < i - 1) QuickSort(a, first, i - 1);
if(j + 1 < last) QuickSort(a, j + 1,last);
}
tmsb