結果

問題 No.291 黒い文字列
コンテスト
ユーザー testestest
提出日時 2016-10-25 00:04:43
言語 C90(gcc12)
(gcc 12.4.0)
コンパイル:
gcc-12 -O2 -std=c90 -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 62 ms / 2,000 ms
コード長 573 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 232 ms
コンパイル使用メモリ 33,684 KB
最終ジャッジ日時 2026-02-23 22:42:19
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 26
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:4:1: warning: data definition has no type or storage class
    4 | dp[110][22][22][22][22];
      | ^~
main.c:5:1: warning: data definition has no type or storage class
    5 | i,a,b,c,d,t;
      | ^
main.c: In function ‘main’:
main.c:18:12: warning: incompatible implicit declaration of built-in function ‘printf’ [-Wbuiltin-declaration-mismatch]
   18 |         t=!printf("%d",ans-1);
      |            ^~~~~~
main.c:1:1: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
  +++ |+#include <stdio.h>
    1 | #define f(i,e)for(i=e+1;i--;)
/usr/bin/ld: /tmp/ccMdnW1V.o: in function `main':
main.c:(.text.startup+0x2a): 警告: the `gets' function is dangerous and should not be used.

ソースコード

diff #
raw source code

#define f(i,e)for(i=e+1;i--;)
#define max(p,q)(p<(q)?p=q:p)
char s[110];
dp[110][22][22][22][22];
i,a,b,c,d,t;
main(ans){
	*****dp=1;
	for(gets(s);s[i];i++){
		f(a,20)f(b,a)f(c,b)f(d,c)if(t=dp[i][a][b][c][d]){
			if(s[i]=='K'||s[i]=='?')max(dp[i+1][a+1][b][c][d],t);
			if(s[i]=='U'||s[i]=='?')max(dp[i+1][a][b+1][c][d],t);
			if(s[i]=='R'||s[i]=='?')max(dp[i+1][a][b][c+1][d],t);
			if(s[i]=='O'||s[i]=='?')max(dp[i+1][a][b][c][d+1],t);
			if(s[i]=='I'||s[i]=='?')max(ans,max(dp[i+1][a][b][c][d],d<t?0:t+1));
			max(dp[i+1][a][b][c][d],t);
		}
	}
	t=!printf("%d",ans-1);
}
0