[AtCoder] ABC 202 C – Made Up
問題
方針
\( A_i = x \) となる \( A_i \) の個数を \( D_x \) とし,\( B_{C_j} = y\) となる \( B_{C_j} \) の個数を \( E_y \) とします.このとき,\( A_i = B_{C_j} \) となる組み合わせの数は,\( D_{A_j}E_{A_j}\) と求めることができます.
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int N; cin >> N; int A[N], B[N], C[N]; for (int i = 0; i < N; i++) { cin >> A[i]; } for (int i = 0; i < N; i++) { cin >> B[i]; } for (int i = 0; i < N; i++) { cin >> C[i]; } int M = 100000; ll D[M] = {0}; ll E[M] = {0}; for (int i = 0; i < N; i++) { D[A[i] - 1]++; E[B[C[i] - 1] - 1]++; } ll ans = 0; for (int i = 0; i < M; i++) { ans += D[i] * E[i]; } cout << ans << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません