はまやんはまやんはまやん

hamayanhamayan's blog

Xor Match [CSAcademy #63 A]

https://csacademy.com/contest/round-63/task/xor-match/

N要素の配列AとM要素の配列Bがある。
どちらも2値配列である(0か1が入っている)。
0≦j≦M-Nの中で0≦i≦Nの全てでA[i] + B[i+j]=1となっているjの個数は?

解法

愚直シミュレーションが間に合う。
特に注意点も無い。
自分はこういう判定ものはok変数を使っている。

int N, M, A[1010], B[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> M;
    rep(i, 0, N) cin >> A[i];
    rep(i, 0, M) cin >> B[i];

    int ans = 0;
    rep(i, 0, M - N + 1) {
        int ok = 1;
        rep(j, 0, N) if (A[j] == B[j + i]) ok = 0;
        if (ok) ans++;
    }
    cout << ans << endl;
}