結果
| 問題 | 
                            No.345 最小チワワ問題
                             | 
                    
| コンテスト | |
| ユーザー | 
                             monburan_0401
                         | 
                    
| 提出日時 | 2018-09-11 18:24:20 | 
| 言語 | C  (gcc 13.3.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,198 bytes | 
| コンパイル時間 | 267 ms | 
| コンパイル使用メモリ | 29,568 KB | 
| 実行使用メモリ | 6,948 KB | 
| 最終ジャッジ日時 | 2024-06-23 19:21:32 | 
| 合計ジャッジ時間 | 1,192 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 14 WA * 15 | 
ソースコード
//	与えられた文字列が	c	w	w	の順になる時、その文字の長さ
#include <stdio.h>
int main(void){
	char S[101];		//	1 <= S <= 100
	int start,goal;	//	c 〜 2回目のwまで
	int w;				//	cの回数をカウント
	int moji = 0;		//	入力値の文字数
	int minL = 1000;	//	cww列の最小値
	
	scanf("%s",S);
	
	start = -1;	//	ありえない数字を置いておく
	
	for(int k = 0; S[k] != 0; k++){
		moji++;
	}
	
	for(int j = 0; j < moji; j ++){
	
		for(int i = 0; S[i] != 0; i++){		//	前回のループのstartは除外したい.初期値をマイナスにする
			if( (S[i] == 'c')&&(i > start) ){		//	計測開始		ccwwccwの時どうする?
				start = i;
				break;
			}
		}
		
		if(start == -1){		//	cがないなら終わり
			printf("-1\n");
			return 0;
		}else{
			w = 0;
			for(int j = start; S[j] != 0; j++){
				if(S[j] == 'w'){
					w += 1;
					if(w == 2){		//	wが2回出たら計測終了
						goal = j;
						break;
					}
				}
			}
		}
		
		if(w < 2){		//	wが2つないなら終わり
			printf("-1\n");
			return 0;
		}else{
			if(minL > goal - start + 1){
				minL = goal - start + 1;
			}	
		}
	}
	
	printf("%d\n",minL);
	return 0;
}
            
            
            
        
            
monburan_0401