結果

問題 No.348 カゴメカゴメ
ユーザー MoritaYasuaki
提出日時 2016-03-05 04:43:25
言語 C90
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 1,160 bytes
コンパイル時間 165 ms
コンパイル使用メモリ 21,888 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-24 14:13:32
合計ジャッジ時間 1,837 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19 WA * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:9:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    9 | main(){
      | ^~~~
main.c: In function ‘main’:
main.c:10:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   10 |     scanf("%d%d",&N,&M);
      |     ^~~~~~~~~~~~~~~~~~~

ソースコード

diff #

#include <stdio.h>
#include <stdlib.h>
int N,M;
long S[2] = {0};
char e[1003] = {0};
#define X(x) ((x)&0x1)
#define COLOR(x) ((x)&0x10)

main(){
    scanf("%d%d",&N,&M);
    int n,m;
    for (n = 0; n < N; n++) {
        char ul = 0;
        char l = 0;
        getchar();
        for (m = 0; m < M; m++) {
            char c = getchar() != '.';
            char u = e[m+1];
            char ur = e[m+2];
            if (!X(c))
                if (!X(u))
                    c = u;
                else if (!X(l))
                    c = l;
                else if (!X(ul))
                    c = ul ^ 0x10;
                else 
                    c = COLOR(l);
            else
                if (!X(u) && !X(l) && !X(ul) && !X(ur))
                    c = COLOR(l) | c;
                else if (X(u))
                    c = u;
                else if (X(l))
                    c = l;
                else if (X(ul))
                    c = ul;
                else
                    c = ur;
            S[!!COLOR(c)] += X(c);
            e[m+1] = c;
            l = c;
            ul = u;
        }
    }
    printf("%ld\n", S[0]>=S[1]?S[0]:S[1]);
}
0