题目1185:特殊排序

题目描述:

输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。

输入:

输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。

接下来的一行有N个整数。

输出:

可能有多组测试数据,对于每组数据,

第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。

第二行将排序的结果输出。

样例输入:
4
1 3 4 2
样例输出:
4
1 2 3
提示:

如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。

#include <stdio.h>
    #include <algorithm>
    using namespace std;

    int main()
    {
            int n;
            int buf[1000];
            while (scanf("%d", &n) != EOF)
            {
                    for (int i=0; i<n; i++)
                    {
                            scanf("%d", &buf[i]);
                    }
                    sort(buf, buf+n);
                    if (n==1)
                    {
                            printf("%d\n", buf[0]);
                            printf("-1\n");
                    }
                    else
                    {
                            printf("%d\n", buf[n-1]);
                            for (int i=0; i<n-2; i++)
                            {
                                    printf("%d ", buf[i]);
                            }
                            printf("%d\n", buf[n-2]);
                    }
            }
            return 0;
    }
/**************************************************************
    Problem: 1185
    User: Carvin
    Language: C++
    Result: Accepted
    Time:30 ms
    Memory:1020 kb
****************************************************************/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 02:47:22

题目1185:特殊排序的相关文章

题目1202:排序

题目1202:排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=100). 接下来的一行包括n个整数. 输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格. 每组测试数据的结果占一行. 样例输入: 4 1 4 3 2 样例输出: 1 2 3 4  1 #include <stdio.h> 2 3 int main(int argc, const

九度oj 题目1185:特殊排序

题目描述: 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序. 输入: 输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数. 接下来的一行有N个整数. 输出: 可能有多组测试数据,对于每组数据, 第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序. 第二行将排序的结果输出. 样例输入: 4 1 3 4 2 样例输出: 4 1 2 3 提示: 如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1". 这道题描述

1185 特殊排序

/* 使用快排实现 题目描述: 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序. 输入: 输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数. 接下来的一行有N个整数. 输出: 可能有多组测试数据,对于每组数据, 第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序. 第二行将排序的结果输出. 样例输入: 4 1 3 4 2 样例输出: 4 1 2 3 提示: 如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1&qu

ACM题目———— 一种排序(STL之set)

描述 输入 第一行有一个整数 0<n<10000,表示接下来有n组测试数据:每一组第一行有一个整数 0<m<1000,表示有m个长方形:接下来的m行,每一行有三个数 ,第一个数表示长方形的编号, 第二个和第三个数值大的表示长,数值小的表示宽,相等说明这是一个正方形(数据约定长宽与编号都小于10000): 输出 顺序输出每组数据的所有符合条件的长方形的 编号 长 宽 样例输入 1 8 1 1 1 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 2 1 2 2 2 1 样例

NYOJ题目1080年龄排序

-------------------------- 桶排都过不了,我彻底没办法了... 1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 5 public class Main{ 6 7 public static void main(String[] args) throws NumberFormatException, IOExceptio

题目3 特殊排序

1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main{ 5 public static void main(String[]args){ 6 Scanner in=new Scanner(System.in); 7 int n=0; 8 int[]nums=null; 9 while(in.hasNext()){ 10 n=in.nextInt(); 11 nums=new int[n]; 12

题目2 成绩排序

一直超时,但是程序没有任何问题,我在论坛上看到所有用Java写的这道题目都超时了,所以应该是评判系统的问题. 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main{ 5 static class stu implements Comparable<stu>{ 6 String name; 7 int age; 8 int score; 9 @Override 10 public int comp

Leetcode题目34.在排序数组中查找元素的第一个和最后一个位置(中等)

题目描述: 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [-1, -1]. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2: 输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1] 题目解析: 方法 1:线性扫描 对 target 检查每

题目1202:排序------注意每个数字的后面都有空格

#include<stdio.h> #include<algorithm> using namespace std; int a[101]; int main() { int n; while(scanf("%d",&n)!=EOF) { int i; for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<n;i++) printf("%d