結果
問題 |
No.345 最小チワワ問題
|
ユーザー |
![]() |
提出日時 | 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; }