ペアを全探索する問題!
問題概要
人がいて、人 の名字は 、名前は である。
同姓同名であるような人の組が存在するかを求めよ。
制約
考えたこと
0-indexed で考える。
を満たす であって、 かつ を満たすものが存在するかどうかを求めればよい。
を満たす を走査するためには、次のような 2 重 for 文が使える。
for (int i = 0; i < N; ++i) { for (int j = i + 1; j < N; ++j) { // (i, j) について調べる } }
あとは、この中身を書けばよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<string> S(N), T(N); for (int i = 0; i < N; i++) cin >> S[i] >> T[i]; bool res = false; for (int i = 0; i < N; i++) { for (int j = i+1; j < N; j++) { if (S[i] == S[j] && T[i] == T[j]) { res = true; } } } cout << (res ? "Yes" : "No") << endl; }