题目的意思就是要让数先增后减,如果是单调就递增 或 递减(都可以)
#include <iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int a[5000];//存出现的次数
int b[100002];//存序列
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
int s;
int maax=0;
int k=0;
for(int i=0;i<n;i++)
{
scanf("%d",&s);
a[s]++;
if(s>maax)
{
maax=s;
}
}
for(int i=1;i<maax;i++)
{
if(a[i])
{
b[k]=i;
k++;
a[i]--;
}
}
b[k]=maax;
for(int i=maax-1;i>=1;i--)
{
if(a[i])
{
k++;
b[k]=i;
}
}
printf("%d\n%d",k+1,b[0]);
for(int i=1;i<=k;i++)
{
printf(" %d",b[i]);
}
printf("\n");
}
2018年3月19日 21:17