카드 셔플
시간 제한10초메모리 제한1024 MB
N장의 카드를 구간 단위로 맨 위나 맨 아래로 옮기거나 리플 셔플하는 Q개의 질의를 처리한 뒤 최종 순서를 출력하는 문제입니다.
문제
위에서부터 이 적혀 있는 카드 한 벌이 있다. 인 두 정수 , 에 대해 다음 쿼리를 수행한다.
1 x y: 위에서부터 번째 카드부터 번째 카드까지를 제일 위로 올린다.2 x y: 위에서부터 번째 카드부터 번째 카드까지를 제일 아래로 내린다.3 x y: 위에서부터 번째 카드부터 번째 카드까지 리플 셔플을 한다. 은 1,000 이하이다.
리플 셔플은 장의 카드를 위에서부터 장짜리 덩어리와 나머지 덩어리로 나눈 뒤, 두 덩어리에서 번갈아 카드를 놓아 섞는 방식이다. 섞기 전에 제일 위에 있던 카드는 섞은 뒤에도 제일 위에 있다.
입력
첫 줄에 카드 수 ()과 쿼리의 수 ()가 주어진다. 다음 개의 줄에 쿼리가 주어진다.
출력
모든 쿼리를 처리한 뒤, 카드에 적힌 숫자를 위에서부터 순서대로 출력한다.
힌트
카드가 6장일 때 쿼리 3 1 6을 처리하면
1 2 3 4 5 6 ⇒ 1 4 2 5 3 6
이 되고, 카드가 7장일 때 3 1 7이 입력으로 들어오면
1 2 3 4 5 6 7 ⇒ 1 5 2 6 3 7 4
가 된다.