https://csacademy.com/contest/round-68/task/string-concat/
N個の文字列がある。
各文字について他のN-1個の文字列から2つ選んで結合すると、その文字列が作れるかを判定せよ。
作れる文字列の添字を全て出力せよ。
解法
各文字列について他の文字列の全ての組を試して、結合して作れるかを判定すればいい。
C++なら+で繋いで==で比較すれば実現できる。
int N; string A[101010]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N; rep(i, 0, N) cin >> A[i]; vector<int> ans; rep(i, 0, N) { int ok = 0; rep(a, 0, N) rep(b, 0, N) if (a != b and a != i and b != i) { if (A[a] + A[b] == A[i]) ok = 1; } if(ok) ans.push_back(i + 1); } int n = ans.size(); rep(i, 0, n) { if (i) printf(" "); printf("%d", ans[i]); } printf("\n"); }