結果
問題 | No.359 門松行列 |
ユーザー | yfujita0929 |
提出日時 | 2016-04-18 02:50:10 |
言語 | C90 (gcc 11.4.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,541 bytes |
コンパイル時間 | 365 ms |
コンパイル使用メモリ | 22,912 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2024-10-04 13:01:15 |
合計ジャッジ時間 | 5,813 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 0 ms
6,656 KB |
testcase_01 | AC | 0 ms
5,248 KB |
testcase_02 | AC | 1 ms
5,248 KB |
testcase_03 | AC | 1 ms
5,248 KB |
testcase_04 | AC | 0 ms
5,248 KB |
testcase_05 | AC | 1 ms
5,248 KB |
testcase_06 | AC | 1 ms
5,248 KB |
testcase_07 | AC | 1 ms
5,248 KB |
testcase_08 | AC | 20 ms
5,248 KB |
testcase_09 | AC | 169 ms
5,248 KB |
testcase_10 | TLE | - |
testcase_11 | TLE | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
コンパイルメッセージ
main.c: In function ‘main’: main.c:21:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 21 | scanf("%d", &t); | ^~~~~~~~~~~~~~~ main.c:24:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 24 | scanf("%d", &len); | ^~~~~~~~~~~~~~~~~ main.c:26:13: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 26 | scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> #include <stdlib.h> #define V_SIZE 3 #define H_SIZE 3 int simulate(int len, int **arr); int max(int a, int b, int c); int min(int a, int b, int c); int isKadomatsu(int a, int b, int c); int main(void) { int t, len, **a, idx, i, j; a = (int**)calloc(sizeof(int*), V_SIZE); for(idx = 0; idx < V_SIZE; idx++) { a[idx] = (int*)calloc(sizeof(int), H_SIZE); } scanf("%d", &t); for(idx = 0; idx < t; idx++) { scanf("%d", &len); for(i = 0; i < V_SIZE; i++) { scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]); } printf("%d\n", simulate(len, a)); } /* for(i = 0; i < V_SIZE; i++) { for(j = 0; j < H_SIZE; j++) { printf("%d ", a[i][j]); } printf("\n"); } */ return 0; } int simulate(int len, int **arr) { int i, j, zero[2][2], cnt=0, ret=0; for(i = 0; i < V_SIZE; i++) { for(j = 0; j < H_SIZE; j++) { if(arr[i][j] == 0) { zero[cnt][0] = i; zero[cnt][1] = j; cnt++; } } } for(i = 1; i < len; i++) { cnt = 0; arr[(zero[0][0])][(zero[0][1])] = i; arr[(zero[1][0])][(zero[1][1])] = (len - i); if(isKadomatsu(arr[0][0], arr[1][1], arr[2][2]) && isKadomatsu(arr[0][2], arr[1][1], arr[2][0])) { for(j = 0; j < V_SIZE; j++) { if(isKadomatsu(arr[j][0], arr[j][1], arr[j][2])) { cnt++; } if(isKadomatsu(arr[0][j], arr[1][j], arr[2][j])) { cnt++; } } if(cnt == 6) { ret++; } } } return ret; } int max(int a, int b, int c) { if(a > b) { if(a > c) { return a; } else { return c; } } else { if(b > c) { return b; } else { return c; } } } int min(int a, int b, int c) { if(a > b) { if(b > c) { return c; } else { return b; } } else { if(a > c) { return c; } else { return a; } } } int isKadomatsu(int a, int b, int c) { if (a == b || b == c || c == a) { return 0; } if (max(a, b, c) == b || min(a, b, c) == b) { return 1; } return 0; }