2019-2020 ICPC, Asia Jakarta Regional Contest A. Copying Homework (思维)

2020-10-28 11:42:38 浏览数 (1)

Danang and Darto are classmates. They are given homework to create a permutation of N integers from 1 to N. Danang has completed the homework and created a permutation A of N integers. Darto wants to copy Danang's homework, but Danang asks Darto to change it up a bit so it does not look obvious that Darto copied.

The difference of two permutations of N integers A and B, denoted by diff(A,B), is the sum of the absolute difference of Ai and Bi for all i. In other words, diff(A,B)=ΣNi=1|Ai−Bi|. Darto would like to create a permutation of N integers that maximizes its difference with A. Formally, he wants to find a permutation of N integers Bmax such that diff(A,Bmax)≥diff(A,B′) for all permutation of N integers B′.

Darto needs your help! Since the teacher giving the homework is lenient, any permutation of N integers B is considered different with A if the difference of A and B is at least N. Therefore, you are allowed to return any permutation of N integers B such that diff(A,B)≥N.

Of course, you can still return Bmax if you want, since it can be proven that diff(A,Bmax)≥N for any permutation A and N>1. This also proves that there exists a solution for any permutation of N integers A. If there is more than one valid solution, you can output any of them.

Input

Input begins with a line containing an integer: N (2≤N≤100000) representing the size of Danang's permutation. The next line contains N integers: Ai (1≤Ai≤N) representing Danang's permutation. It is guaranteed that all elements in A are distinct.

Output

Output in a line N integers (each separated by a single space) representing the permutation of N integers B such that diff(A,B)≥N. As a reminder, all elements in the permutation must be between 1 to N and distinct.

Examples

input

代码语言:javascript复制
4
1 3 2 4

output

代码语言:javascript复制
4 2 3 1

input

代码语言:javascript复制
2
2 1

output

代码语言:javascript复制
1 2

Note

Explanation for the sample input/output #1

With A=[1,3,2,4] and B=[4,2,3,1], diff(A,B)=|1−4| |3−2| |2−3| |4−1|=3 1 1 3=8. Since 8≥4, [4,2,3,1] is one of the valid output for this sample.

不知道这套题有多少人做。

这个题意是说找一个排列,始与原排列的差的绝对值大于N,我们每个排列都选跟他差最大的 也就是(1->n),(2->n-1).....

直接输出n 1-a[i]即可。

代码语言:javascript复制
#include<iostream>
using namespace std;
int a[10000000];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i  ) cin>>a[i];
    for(int i=0;i<n;i  ) cout<<((n 1)-a[i])<<' ';
}

好久没见过这么短的代码了

0 人点赞