티스토리 뷰
15464-The Bovine Shuffle(Bronze)
셔플 규칙 수열과 이 규칙을 기준으로 3번 셔플된 후의 order를 알려주고, 이 결과를 바탕으로 셔플 하기 전인 처음 상태의 order를 유추하는 문제다. 3번 셔플된 후를 알고 있으니 거꾸로 거슬러 올라가면서 2번->1번->처음 이렇게 order를 갱신해주면 된다.
만약 3번 셔플의 결과가 a b c d e 이고,셔플 규칙이 1 3 4 5 2이면 그 직전(2번 셔플)은 a c d e b가 되는 식이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include<stdio.h> #define SIZE 101 int n,arr[SIZE]; int order[4][SIZE]; int main(){ scanf("%d",&n); for(int i=1 ; i<=n ; i++){ scanf("%d",&arr[i]); } for(int i=1 ; i<=n ; i++) scanf("%d",&order[0][i]); for(int i=1 ; i<=3 ; i++){ for(int j=1 ; j<=n ; j++){ order[i][j]=order[i-1][arr[j]]; } } for(int i=1 ; i<=n ; i++){ printf("%d\n",order[3][i]); } return 0; } | cs |
'Problem Solving > Etc.' 카테고리의 다른 글
[Codeforces 1118B] Tanya and Candies (Prefix Sum,부분합) (0) | 2019.02.21 |
---|---|
15668-방 번호 (0) | 2019.01.08 |
15460-My Cow Ate My Homework(Silver) (0) | 2018.12.12 |
15465-Milk Measurement(Bronze)(set) (0) | 2018.12.12 |
Quick Selection Algorithm(퀵 셀렉션 알고리즘) (0) | 2018.12.03 |
댓글