만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

내 집 마련하기

면접 대비

시간 제한1초메모리 제한1024 MB

요약
각 질의 L R마다 번호가 L부터 R까지인 사람들이 서로 집을 바꿀 수 있습니다. 집 번호와 사람 번호를 곱한 값의 합이 최대가 되는 수열을 구합니다.
난이도

쉬움10점 중 3점

유형
그리디, 정렬, 구현
정답자
아직 제출이 없습니다

문제

서강대학교에는 비어 있는 집이 NN채 있다. 학교는 NN명의 사람이 각자 한 채씩 입주하도록 배정하려고 한다. 학교는 입주자에게 혜택을 준다. xx번 집에 yy번 사람이 입주하면 xyxy만큼의 세금을 감면한다.

집의 배정 상태는 11부터 NN까지의 정수를 하나씩 원소로 가지는 수열 A1,A2,…,ANA_1, A_2, \dots, A_N으로 나타낸다. 이는 ii번 집에 AiA_i번 사람이 배정되어 있다는 뜻이다.

다음 쿼리를 해결하는 프로그램을 작성하라.

  • LL RR: 초기 배정 상태에서 LL번부터 RR번까지의 사람들은 현재 배정받은 집을 학교가 원하는 만큼 서로 교환할 수 있다. 감면되는 세금의 합이 최대가 되도록 다시 배정했을 때의 수열 AA를 출력한다.

모든 쿼리는 독립적이다. 쿼리가 끝나면 수열 AA는 초기 상태로 돌아간다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1≤N≤300)(1 \le N \le 300)

둘째 줄에 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤N)(1 \le A_i \le N)

셋째 줄에 쿼리의 개수 MM이 주어진다. (1≤M≤300)(1 \le M \le 300)

넷째 줄부터 MM개의 줄에 걸쳐 쿼리를 나타내는 두 정수 LL, RR이 공백으로 구분되어 주어진다. (1≤L≤R≤N)(1 \le L \le R \le N)

출력

쿼리마다 정답을 한 줄에 하나씩 출력한다.

각 줄에는 쿼리가 끝난 후의 수열 A1,A2,…,ANA_1, A_2, \dots, A_N을 공백으로 구분하여 출력한다.

가능한 답이 여러 가지라면 아무거나 하나 출력한다.

예제1

  1. 예제 1

    입력
    5
    1 3 4 2 5
    3
    2 3
    3 5
    1 5
    
    예상 출력
    1 2 4 3 5
    1 3 4 2 5
    1 2 3 4 5