问题 B: 特殊排序
时间限制: 1 Sec 内存限制: 32 MB
提交: 528 解决: 185
[提交][状态][讨论版][命题人:外部导入]
题目描述
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
输入
输入第一行包括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 <string>
#include <algorithm>
using namespace std;
int main(){
int n;
while (scanf("%d", &n) != EOF){
int ans[1002];
int i = 0;
while (n--){
scanf("%d", &ans[i]);
i++;
}
sort(ans, ans + i);
printf("%d\n", ans[i-1]);
if (i > 1){
for (int j = 0; j < i - 1; j++){
printf("%d ", ans[j]);
}
printf("\n");
}
else printf("-1\n");
}
//system("pause");
return 0;
}