ARC 195
Table of Contents
https://atcoder.jp/contests/arc195
A. Twice Subsequence
https://atcoder.jp/contests/arc195/tasks/arc195_a
$A$ の前方から抜き出した $B$ に一致する部分列と、$A$ の後方から抜き出した $B$ に一致する部分列が異なれば Yes, そうでなければ No.
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, M;
cin >> N >> M;
vll A(N), B(M);
rep(i, N) cin >> A[i];
rep(i, M) cin >> B[i];
vint lid;
int j = 0;
rep(i, N) {
if (A[i] == B[j]) {
lid.push_back(i);
j++;
}
if (j == M) break;
}
vint rid;
j = M - 1;
for (int i = N - 1; i >= 0; i--) {
if (A[i] == B[j]) {
rid.push_back(i);
j--;
}
if (j < 0) break;
}
reverse(all(rid));
yesno((ll)rid.size() == M && (ll)lid.size() == M && rid != lid);
}
B. Uniform Sum
https://atcoder.jp/contests/arc195/tasks/arc195_b
C. Hamiltonian Pieces
https://atcoder.jp/contests/arc195/tasks/arc195_c
D. Swap and Erase
https://atcoder.jp/contests/arc195/tasks/arc195_d