結果

問題 No.1005 BOT対策
ユーザー @abcde
提出日時 2020-03-06 23:07:13
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 986 bytes
コンパイル時間 1,530 ms
コンパイル使用メモリ 166,956 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-14 10:51:36
合計ジャッジ時間 2,443 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

// コメント修正して, 再提出.
#include <bits/stdc++.h>
using namespace std;
#define repex(i, a, b, c) for(int i = a; i < b; i += c)
#define repx(i, a, b) repex(i, a, b, 1)
#define rep(i, n) repx(i, 0, n)
#define repr(i, a, b) for(int i = a; i >= b; i--)

int main(){
    
    // 1. 入力情報.
    char c1[1010], c2[1010];
    scanf("%s %s", c1, c2);
    string S(c1), T(c2);
    int sl = S.size();
    int tl = T.size();
    
    // 2. T の 先頭文字, 末尾文字 を 比較.
    bool b = false;
    if(T.front() == T.back()) b = true;
    
    // 3. T が 含まれる回数.
    int ans = 0;
    if(b){
        rep(i, sl - tl + 1) if(S.substr(i, tl) == T) ans++;
    }else{
        int i = 0;
        while(i < sl - tl + 1){
            if(S.substr(i, tl) == T) ans++, i += tl;
            else                     i++;
        }
    }
    
    // 4. 出力.
    if(tl == 1 && ans > 0) puts("-1");
    else                   printf("%d\n", ans);
    
    return 0;
}
0