欢迎关注微信公众号onlinejudge 支付宝扫一扫天天领红包!
问题 B: 特殊排序
时间限制: 1 Sec 内存限制: 32 MB
提交: 491 解决: 172
[提交][状态][讨论版][命题人:外部导入]
题目描述
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
输入
输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。
接下来的一行有N个整数。
输出
可能有多组测试数据,对于每组数据,
第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。
第二行将排序的结果输出。
样例输入
<span style="color:#333333">5
5 3 2 4 1</span>
样例输出
<span style="color:#333333">5
1 2 3 4</span>
提示
如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
class student{
public: char xuehao[100];
char name[100];
char sex[1000];
int age;
};
using namespace std;
int f(int n){
int result;
if(n==1||n==2)
{
result=1;
return result;
}
else
result=f(n-1)+f(n-2);
return result;
}
void reverse1(char s[],char s1[]){
int i=0;
int j=0;
for(;s[i]!='\0';i++)
if((s[i]=='a')||(s[i]=='o')||(s[i]=='e')||(s[i]=='i')||(s[i]=='u')){
s1[j]=s[i];
j++;
}
}
bool cmp(int a,int b){
return b>a;
}
int main()
{
int a[2000];
int n;
while(cin>>n){
int xiabiao=0;
memset(a,0,sizeof(a));
int i=0;
for(;i<n;i++)
cin>>a[i];
if(n==1){
cout<<a[0]<<endl;
cout<<-1<<endl;
continue;
}
int max=a[0];
for(int z=0;z<n;z++)
if(a[z]>=max)
{
max=a[z];
xiabiao=z;
}
for(int k=xiabiao;k<n-1;k++)
a[k]=a[k+1];
sort(a,a+n-1,cmp);
cout<<max<<endl;
for(int j=0;j<n-1;j++)
cout<<a[j]<<" ";
cout<<endl;
}
}
//