일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 문제출저:www.dovelet.com
- 참조은요양병원
- C
- 정보올림피아드
- DBMS
- 알고리즘
- 리눅스 명령어
- 백도어
- 정보영재원
- 자료구조
- IT
- 독서 감상문
- 프로그래밍
- 독후감
- 풀이&소스코드저작권:왕유승
- 배열
- if문
- API
- Linux
- 반복문
- c언어
- Backdoor
- 다중반복문
- 영재교육원
- 제어문
- 리눅스
- 수학영재원
- 정보과학
- C++
- For문
Archives
- Today
- Total
되는대로 살자
[C언어 기출문제&풀이]Shuffle 본문
프로그램 명: shuffle
제한시간: 1 초
카드를 섞는 방법은 여러가지가 있다. 일본 카드 게임 hahafuda 를 섞는 방법은 이 중 한가지 이다. 이 카드를 섞는 방법은 다음과 같다.
n 장의 카드가 쌓여져 있다. 제일 위에서 p 번째 카드부터 c 장의 카드를 빼서 이를 제일 위로 올리면서 카드를 섞는 작업을 계속한다.
이 방법으로 카드를 섞는 작업을 시뮬레이션 했을 때 제일 위 카드는 어떤 카드가 되는 지를 알고자 한다.
입력
입력은 여러개의 테스트 데이터가 주어진다.각 테스트 데이터 별 첫 줄에는 n,r 이 주어진다. n 은 카드 수 이고 , r 은 섞는 동작 수이다. 1 <= n,r <= 50
다음 r 줄에는 어떤 카드를 빼서 위로 올리는지의 정보로 두 개의 양의 정수 p 와 c 가 주어진다. (p + c ≤ n + 1) 카드의 꼭대기 부터 p 번째 카드에서 시작에서 c 장의 카드를 빼서 꼭대기로 올린다.
입력의 끝은 0 0 이다.
출력
각 테스트별 제일 위에 있는 카드 번호를 출력한다.아래부터 위로 카드번호가 1 , 2 , ... , n 으로 주어지는 것으로 간주한다.
입출력 예
입력 5 2 3 1 3 1 10 3 1 10 10 1 8 3 0 0 출력 4 4
출처: Asia - Ehime (Japan) 2004 Preliminary
풀이 : ... 음 뭐라해야하지 알고리즘은 문제 방식대로 하면 된다.
값을 바꾸는 것처럼
1.p-1 덱을 저장
2.c덱을 1~c에 복사
3.p-1덱을 c덱 뒤에 복사
뭐 이렇게 하면 된다.
'2009~2014 > C/C++' 카테고리의 다른 글
[C언어 기출문제&풀이] 완전 잉여계 (0) | 2011.08.14 |
---|---|
[C언어 기출문제&풀이] linear sequence (0) | 2011.08.14 |
[C언어 기출문제&풀이] 주차 (parking) (0) | 2011.08.14 |
[C언어 기출문제&풀이] dream counting (0) | 2011.08.14 |
[C언어 기출문제&풀이] 나머지 에 관한 문제 (0) | 2011.08.11 |