프로그램 명: switch
제한시간: 1 초

1 부터 연속적으로 번호가 붙은있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져 있는 상태이다.

<그림 1>에 스위치 8 개의 상태가 표시되어 있다. 1 은 스위치가 켜져 있음을 0 은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서 학생들에게 1 이상이고 스위치 개수 이하인 자연수를 하나씩 나누어 주었다. 학생들은 자신의 성별과 받은 수에 따라 아래와 같은 방식으로 스위치를 조작하게 된다.

남학생은 스위치 번호가 자기가 받은 수의 배수이면 그 스위치 상태를 바꾼다. 즉 스위치가 켜져 있으면 끄고, 꺼져 있으면 켠다. <그림 1> 과 같은 상태에서 남학생이 3 을 받았으면 3 번 6 번 스위치를 바꾼다.

여학생은 자기가 받은 수와 같은 번호가 붙은 스위치를 중심으로 좌우가 대칭이면서 가장 많은 스위치를 포함하는 구간을 찾아서 , 그 구간에 속한 스위치의 상태를 모두 바꾼다. 이 때 구간에 속한 스위치의 개수는 항상 홀수가 된다.

예를 들어 <그림 2>에서 여학생이 3 을 받았다면 , 3 번 스위치를 중심으로 2 번, 4 번 스위치의 상태가 같고 1 번 , 5 번 스위치의 상태가 같으므로 <그림 3>과 같이 1 번 부터 5 번까지 스위치의 상태를 모두 바꾼다.

스위치 번호 1 2 3 4 5 6 7 8
스위치 상태 0 1 0 1 0 0 0 1

그림1. 최초상태

스위치 번호 1 2 3 4 5 6 7 8
스위치 상태 0 1 1 1 0 1 0 1

그림2. 남학생이 3 을 받은후

스위치 번호 1 2 3 4 5 6 7 8
스위치 상태 1 0 0 0 1 1 0 1

그림3. 여학생이 3 을 받은후

입력으로 스위치의 처음 상태가 주어지고 각 학생의 성별과 받은 수가 주어진다. 학생들은 입력되는 순서대로 자기의 성별과 받은 수에 따라 스위치의 상태를 바꾸었을 때 스위치들의 마지막 상태를 출력하는 프로그램을 작성하시오.

입력

남학생은 1 로, 여학생은 2로 표시하고, 학생이 받은 수는 스위치 개수 이하인 양의 정수이다. 학생의 성별과 받은 수 사이에 빈칸이 하나씩 있다.

출력

스위치의 상태를 1 번 스위치에서 시작하여 마지막 스위치까지 한 줄에 20 개씩 출력한다.

예를 들어 21 번 스위치가 있다면 이 스위치의 상태는 둘 째줄 맨 앞에 출력한다. 켜진 스위치는 1 , 꺼진 스위치는 0 으로 표시하고, 스위치 상태사이에 빈 칸을 하나씩 둔다.

입출력 예

입력

8
0 1 0 1 0 0 0 1
2
1 3
2 3

출력

1 0 0 0 1 1 0 1
출처:koi 초등 기출

[질/답] [제출 현황] [푼 후(4)]
[ 채 점 ] [홈으로]  [뒤 로]