You are on page 1of 1

#include <iostream>

#include <vector>

bool canTransform(std::vector<int>& A, std::vector<int>& B) {


int N = A.size();
for (int i = N - 1; i >= 0; --i) {
if (A[i] != B[i]) {
if (i > 0 && A[i - 1] == B[i]) {
for (int j = i; j < N && A[j] == A[i]; ++j) {
A[j] = B[i];
}
} else if (i < N - 1 && A[i + 1] == B[i]) {
for (int j = i; j >= 0 && A[j] == A[i]; --j) {
A[j] = B[i];
}
} else {
return false;
}
}
}
return true;
}

int main() {
int N;
std::cin >> N;
std::vector<int> A(N), B(N);

for (int& a : A) {
std::cin >> a;
}

for (int& b : B) {
std::cin >> b;
}

if (canTransform(A, B)) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}

return 0;
}

You might also like