結果

問題 No.672 最長AB列
ユーザー butsurizuki
提出日時 2018-06-15 12:17:39
言語 C
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 434 bytes
コンパイル時間 130 ms
コンパイル使用メモリ 29,440 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-30 14:45:18
合計ジャッジ時間 891 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 WA * 2
other AC * 2 WA * 14
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function 'main':
main.c:9:33: warning: iteration 524288 invokes undefined behavior [-Waggressive-loop-optimizations]
    9 |     for(i=0;i<=524288;i++){rw[i]=-1;}
      |                            ~~~~~^~~
main.c:9:14: note: within this loop
    9 |     for(i=0;i<=524288;i++){rw[i]=-1;}
      |             ~^~~~~~~~
main.c:9:33: warning: '__builtin_memset' writing 2097156 bytes into a region of size 2097152 overflows the destination [-Wstringop-overflow=]
    9 |     for(i=0;i<=524288;i++){rw[i]=-1;}
      |                            ~~~~~^~~
main.c:7:16: note: destination object 'rw' of size 2097152
    7 |     int rs=0,i,rw[524288],res=0,l;
      |                ^~

ソースコード

diff #

#include<stdio.h>
#include<string.h>

int max(int a,int b){if(a>b){return a;}return b;}

int main(){
    int rs=0,i,rw[524288],res=0,l;
    char s[524288];
    for(i=0;i<=524288;i++){rw[i]=-1;}
    rw[250000]=0;
    scanf("%s",s);
    l=strlen(s);
    for(i=1;i<=l;i++){
        if(s[i-1]=='A'){rs++;}else{rs--;}
        if(rw[250000+rs]==-1){rw[250000+rs]=i;}
        else{res=max(res,rw[250000+rs]);}
    }
    printf("%d\n",res);
}
0