Gluttony(codeforce-891B)

D. Gluttony
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given an array a with n distinct integers. Construct an array b by permuting a such that for every non-empty subset of indices S = {x1, x2, ..., xk} (1 ≤ xi ≤ n0 < k < n) the sums of elements on that positions in a and b are different, i. e.

Input

The first line contains one integer n (1 ≤ n ≤ 22) — the size of the array.

The second line contains n space-separated distinct integers a1, a2, ..., an (0 ≤ ai ≤ 109) — the elements of the array.

Output

If there is no such array b, print -1.

Otherwise in the only line print n space-separated integers b1, b2, ..., bn. Note that b must be a permutation of a.

If there are multiple answers, print any of them.


题意理解:给你一个a数组,让你构造一个b数组,使得b数组的任意连续k项加起来,都和a数组不一样。

解题思路: 我们让给a数组排个序,使b数组的元素对应位,为第一个比a对应位小的元素,如果是最小值,那么就用最大值替换,这样就能保证完全的不同。

#include
#include
#include
using namespace std;;
int a[50],p[50],b[50];
bool cmp(int x,int y)
{
	return a[x]

你可能感兴趣的:(思维题)