RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R02013

배열 회전

Silver IV 실버 IV
난이도
1s
시간 제한
256MB
메모리 제한
1
맞았습니다!!
1
제출 수
100.0%
정답률
레이팅

의견: 0

설명

길이가 \(n\)인 배열 \(arr\)가 주어지고, 명령이 \(q\)개 주어진다.

명령의 종류는 다음과 같다.

  • 1 x : 배열을 왼쪽으로 \(x\)칸 민 뒤 \(arr[1]\)을 출력한다. (배열의 끝을 넘어가면 반대편으로 이어진다. 즉, 원형 배열이라고 생각하면 된다.)
  • 2 x : 배열을 오른쪽으로 \(x\)칸 민 뒤 \(arr[1]\)을 출력한다.

모든 명령을 수행한 뒤, 최종 배열 \(arr\)를 출력한다. (단, 인덱스는 \(1\)부터 시작한다.)

제약
  • \(0 < n,\ q \le 100{,}000\)
  • \(0 < x \le 100{,}000\)
  • \(-100{,}000 \le arr[i] \le 100{,}000\)
입력 형식

첫 번째 줄에 두 정수 \(n\), \(q\)가 공백으로 구분되어 주어진다.

두 번째 줄에 배열의 원소 \(arr[1], arr[2], \dots, arr[n]\)이 공백으로 구분되어 주어진다.

이후 \(q\)개의 줄에 걸쳐 각 명령이 한 줄에 하나씩 주어진다. 각 명령은 1 x 또는 2 x 형태이다.

출력 형식

각 명령마다 출력값을 공백으로 구분하여 한 줄에 출력한다.

그 다음 줄에 모든 명령을 수행한 후의 배열 \(arr\)를 공백으로 구분하여 출력한다.

서브태스크
서브태스크점수설명

1

15점

\(arr[i] = i\)

2

25점

\(n\)\(q\)가 모두 \(750\) 이하이다.

3

60점

추가 제약 사항 없음.

예제 1
입력
5 3
1 2 3 4 5
1 3
2 2
1 1
출력
4 2 3
3 4 5 1 2
설명

1 2 3 4 5를 왼쪽으로 3번 회전하면 4 5 1 2 3이 되고,
4 5 1 2 3을 오른쪽으로 2번 회전하면 2 3 4 5 1.
2 3 4 5 1을 왼쪽으로 1번 회전하면 3 4 5 1 2가 된다.

예제 2
입력
5 5
5 3 1 6 -4
1 5
2 2
1 6
2 1
1 2
출력
5 6 -4 6 5
5 3 1 6 -4
문제 정보

gras 작성

출처 Original

평가 및 의견

배열 회전

개요
출제자 난이도 Silver IV 실버 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

배열 회전

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8