한참 고민했던 문제
해결하다보니 결정론적으로 문제를 풀어버린 것 같아서 조금 아쉬운 문제
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
void init()
{
ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
int main(void)
{
init();
int N, M, num;
deque<int> dq;
bool is_qs[100001] = {0, };
cin >> N;
for(int i = 0; i < N; i++)
cin >> is_qs[i];
for(int i = 0; i < N; i++)
{
cin >> num;
if(is_qs[i] == 0)
dq.push_back(num);
}
cin >> M;
for(int i = 0; i < M; i++)
{
cin >> num;
dq.push_front(num);
cout << dq.back() << " ";
dq.pop_back();
}
return 0;
}