题目链接:​​点击打开链接​


A. Buggy Sorting



time limit per test



memory limit per test



input



output


n integers a1, a2, ..., an in the non-decreasing order. The pseudocode of the program, written by Valera, is given below. The input of the program gets number n and array a.

loop integer variable i from 1 to n - 1
loop integer variable j from i to n - 1
if (aj > aj + 1), then swap the values of elements aj and aj + 1

n


Input



n (1 ≤ n ≤ 50)


Output



n space-separated integers a1, a2, ..., an (1 ≤ ai) — the counter-example, for which Valera's algorithm won't work correctly. If the counter-example that meets the described conditions is impossible to give, print -1.

n


Examples



input



1



output



-1


题意:给出一种排序方式,问能不能使一组数据,排序后成为非递减序列,给出数组长度,如果不行,输出使程序不成立的一组数据。

思路:模拟一下可以得到,当n为1,2时才能正确排序

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,a[1000];
int main()
{
while(~scanf("%d",&n))
{
if(n==1||n==2)
{
puts("-1");
continue;
}
for(int i=n;i>0;i--)
{
printf(i==1?"%d\n":"%d ",i);
}
}
return 0;
}


题目链接:​​点击打开链接​


B. Increase and Decrease



time limit per test



memory limit per test



input



output



n integers a1, a2, ..., an. Polycarpus likes it when numbers in an array match. That's why he wants the array to have as many equal numbers as possible. For that Polycarpus performs the following operation multiple times:

  • ai,aj(ij);
  • aiby 1 and decreases numberajby 1, that is, executesai=aiandaj=aj.

The given operation changes exactly two distinct array elements. Polycarpus can apply the described operation an infinite number of times.

Now he wants to know what maximum number of equal array elements he can get if he performs an arbitrary number of such operation. Help Polycarpus.



Input



n (1 ≤ n ≤ 105) — the array size. The second line contains space-separated integers a1, a2, ..., an(|ai| ≤ 104) — the original array.



Output



Print a single integer — the maximum number of equal array elements he can get if he performs an arbitrary number of the given operation.



Examples



input



2 2 1



output



1



input



3 1 4 1



output



3




#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int main()
{
while(~scanf("%d",&n))
{
int ans=0;
for(int i=0;i<n;i++)
{
int x;
scanf("%d",&x);
ans+=x;
}
if(ans%n==0)
printf("%d\n",n);
else
printf("%d\n",n-1);
}
return 0;
}


题目链接:​​点击打开链接​


C. Beauty Pageant



time limit per test



memory limit per test



input



output


n soldiers. The soldiers' beauty contest is coming up, it will last for k

ai represents the beauty of the i-th soldier.

k days Generals has to send a detachment of soldiers to the pageant. The beauty of the detachment is the sum of the beauties of the soldiers, who are part of this detachment. Payne wants to surprise the jury of the beauty pageant, so each of k days the beauty of the sent detachment should be unique. In other words, all k

k


Input


nk (1 ≤ n ≤ 50; 1 ≤ k ≤  

codefroces-246_数据

) — the number of soldiers and the number of days in the pageant, correspondingly. The second line contains space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 107)

It is guaranteed that Payne's battalion doesn't have two soldiers with the same beauty.


Output


k lines: in the i-th line print the description of the detachment that will participate in the pageant on the i-th day. The description consists of integer ci (1 ≤ ci ≤ n) — the number of soldiers in the detachment on the i-th day of the pageant and ci distinct integersp1, i, p2, i, ..., pci, i — the beauties of the soldiers in the detachment on the i-th day of the pageant. The beauties of the soldiers are allowed to print in any order.

Separate numbers on the lines by spaces. It is guaranteed that there is the solution that meets the problem conditions. If there are multiple solutions, print any of them.


Examples


input


3 31 2 3


output


1 11 2 2 3 2


input


2 17 12


output


1 12

大意:任取任意个数使得每次的和都不相同,且所有的数都是不同的。输出每次选择元素的个数和方案。

思路:降序排列后,先一一输出,再两两输出........可以保证每次输出的和都不同

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k;
int a[55];
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
while(~scanf("%d%d",&n,&k))
{
for(int i=1;i<=n;i++)
scanf("%d",a+i);
sort(a+1,a+n+1,cmp);
int t=1,cnt=1;
while(t<=k)
{
for(int i=cnt;i<=n;i++)
{
printf("%d ",cnt);
for(int j=1;j<cnt;j++)
{
printf("%d ",a[j]);
}
printf("%d\n",a[i]);
t++;
if(t>k) break;
}
cnt++;
}
}
return 0;
}