Submission #2175713
Source Code Expand
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<stdbool.h> #define MAX_N 100 const int BACK = 0; const int FRONT = 1; void permutations(int n, int ary_coin[]); void perm_sub(int n, int m, int ary_coin[]); void print_perm(int n, int coin_buffer[]); int coin_buffer[MAX_N + 1]; bool used[MAX_N + 1]; int denominator = 0; int molecule = 0; int main(void) { int N; int ary_coin[MAX_N + 1]; double expected_value = 0; // 配列の初期化 for(int i = 0; i < MAX_N + 1; i++) { coin_buffer[i] = 0; used[i] = false; } scanf("%d", &N); for(int i = 0; i < N; i++) { scanf("%d", &ary_coin[i]); } permutations(N, &ary_coin[0]); // 期待値の演算 expected_value = (double)molecule / (double)denominator; printf("%lf", expected_value); return 0; } void permutations(int n, int ary_coin[]) { perm_sub(n, 0, &ary_coin[0]); } void perm_sub(int n, int m, int ary_coin[]) { if (n == m) { print_perm(n, &coin_buffer[0]); } else { for (int i = 0; i < n; i++) { if (used[i]) continue; coin_buffer[m] = ary_coin[i]; used[i] = true; perm_sub(n, m + 1, &ary_coin[0]); used[i] = false; } } } void print_perm(int n, int coin_buffer[]) { // 表と裏を管理する配列 // 0 : 裏, 1 : 表 int back_front[MAX_N + 1]; // 配列の初期化 for(int i = 0; i < MAX_N + 1; i++) { back_front[i] = FRONT; } for(int i = 0; i < n; i++) { for(int j = i + 1; j < n; j++) { if( coin_buffer[j] % coin_buffer[i] == 0 ) { // コインに対応する倍数が見つかった時 if( back_front[j] == FRONT ) { back_front[j] = BACK; } else { back_front[j] = FRONT; } } } } // 期待値の分子となる値を計算する for(int i = 0; i < n; i++) { molecule += back_front[i]; } // 期待値の分母となる、順列の場合の数を足しておく denominator++; }
Submission Info
Submission Time | |
---|---|
Task | C - コイン |
User | omisima |
Language | C (GCC 5.4.1) |
Score | 0 |
Code Size | 2405 Byte |
Status | WA |
Exec Time | 2103 ms |
Memory | 128 KB |
Compile Error
./Main.c: In function ‘main’: ./Main.c:35:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &N); ^ ./Main.c:39:9: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &ary_coin[i]); ^
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 99 | 0 / 1 | ||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt |
Subtask2 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | WA | 1 ms | 128 KB |
sample_02.txt | WA | 1 ms | 128 KB |
sample_03.txt | WA | 1 ms | 128 KB |
subtask1_01.txt | WA | 1 ms | 128 KB |
subtask1_02.txt | WA | 1 ms | 128 KB |
subtask1_03.txt | WA | 1 ms | 128 KB |
subtask1_04.txt | WA | 10 ms | 128 KB |
subtask1_05.txt | WA | 10 ms | 128 KB |
subtask1_06.txt | WA | 2 ms | 128 KB |
subtask1_07.txt | WA | 8 ms | 128 KB |
subtask1_08.txt | WA | 1 ms | 128 KB |
subtask1_09.txt | WA | 1 ms | 128 KB |
subtask1_10.txt | WA | 10 ms | 128 KB |
subtask1_11.txt | WA | 1 ms | 128 KB |
subtask1_12.txt | WA | 8 ms | 128 KB |
subtask1_13.txt | WA | 1 ms | 128 KB |
subtask1_14.txt | WA | 1 ms | 128 KB |
subtask1_15.txt | WA | 11 ms | 128 KB |
subtask1_16.txt | WA | 8 ms | 128 KB |
subtask1_17.txt | WA | 11 ms | 128 KB |
subtask1_18.txt | WA | 11 ms | 128 KB |
subtask1_19.txt | WA | 11 ms | 128 KB |
subtask1_20.txt | WA | 11 ms | 128 KB |
subtask2_01.txt | WA | 981 ms | 128 KB |
subtask2_02.txt | TLE | 2103 ms | 128 KB |
subtask2_03.txt | TLE | 2103 ms | 128 KB |
subtask2_04.txt | TLE | 2103 ms | 128 KB |
subtask2_05.txt | TLE | 2103 ms | 128 KB |
subtask2_06.txt | TLE | 2103 ms | 128 KB |
subtask2_07.txt | TLE | 2103 ms | 128 KB |
subtask2_08.txt | TLE | 2103 ms | 128 KB |
subtask2_09.txt | TLE | 2103 ms | 128 KB |
subtask2_10.txt | TLE | 2103 ms | 128 KB |
subtask2_11.txt | TLE | 2103 ms | 128 KB |
subtask2_12.txt | TLE | 2103 ms | 128 KB |
subtask2_13.txt | TLE | 2103 ms | 128 KB |
subtask2_14.txt | TLE | 2103 ms | 128 KB |
subtask2_15.txt | TLE | 2103 ms | 128 KB |
subtask2_16.txt | TLE | 2103 ms | 128 KB |
subtask2_17.txt | TLE | 2103 ms | 128 KB |
subtask2_18.txt | TLE | 2103 ms | 128 KB |
subtask2_19.txt | TLE | 2103 ms | 128 KB |
subtask2_20.txt | TLE | 2103 ms | 128 KB |