AtCoder
AtCoder Beginner Contest 344
- 250点のC問題で比較的簡単だった。
- 累積和っぽくA+B+Cをあらかじめ求めてSetに突っ込んでいき、最後にfind()で捜査していけば一発でACできる
int main() {
long long N,M,L;
cin >> N;
vector<long long> A(N);
for (int i = 0; i < N; i++) cin >> A[i];
cin >> M;
vector<long long> B(M);
for (int i = 0; i < M; i++) cin >> B[i];
cin >> L;
vector<long long> C(L);
for (int i = 0; i < L; i++) cin >> C[i];
set <long long> sums;
for (int i = 0; i < N; i++){
for (int j = 0; j < M; j++) {
for (int k = 0; k < L; k++) {
sums.insert(A[i] + B[j] + C[k]);
}
}
}
long long Q;
cin >> Q;
for (int i = 0; i < Q; i++) {
long long x;
cin >> x;
if (sums.find(x) != sums.end()) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
}