けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 188 B - Orthogonality (8Q, 灰色, 200 点)

2 個の配列を同時に for 文を使って調べていこう!

問題概要

2 つの  N 次元ベクトル  A_{1}, A_{2}, \dots, A_{N} B_{1}, B_{2}, \dots, B_{N} が与えられて、

 A_{1}B_{1} + A_{2}B_{2} + \dots + A_{N}B_{N} = 0

を満たすかどうかを判定せよ。

考えたこと

配列が 2 つあっても、for 文を用いて、共通の添字  i を回しながらアクセスできる。

次のコードを参照!

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> A(N), B(N);
    for (int i = 0; i < N; i++) cin >> A[i];
    for (int i = 0; i < N; i++) cin >> B[i];

    int res = 0;
    for (int i = 0; i < N; i++) res += A[i] * B[i];
    if (res == 0) cout << "Yes" << endl;
    else cout << "No" << endl;
}