股价排序问题 NOJ 1683

股价排序问题

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 81920 KByte
总提交 : 398            测试通过 : 76 

题目描述

小郑同学在投资股票时常常遇到排序问题:

给定股价序列,

如果已按从小到

大顺序排好了,则不需要处理,输出“

N/A

”;否则,需要从小到大顺序排序,

输出排序后的股价序列。请你帮他解决这个问题。

小郑同学在投资股票时常常遇到排序问题:给定股价序列,如果已按从小到大顺序排好了,则不需要处理,输出“N/A”;否则,需要从小到大顺序排序,输出排序后的股价序列。请你帮他解决这个问题。



输入

输入包括多个测试用例,首先给出测试用例数N(1≤N≤20),接着给出N个测试用例。每一个测试用例包括一行,每一行包含以空格分隔的多个整数,第一个整数表示股价序列大小M(1≤M≤1000),接着给出M个股价。

输出

输出包括多行,对于每个测试用例输出一行,输出“N/A”,或者以空格分隔的股价序列。

样例输入

3
3 1 2 3
5 5 4 3 2 1
6 6 6 7 8 7 9

样例输出

N/A
1 2 3 4 5 
6 6 7 7 8 9


水题就不废话了==

实现代码:

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
int N,M;
int main()
{
    scanf("%d",&N);
    while(N--)
    {
        scanf("%d",&M);
        int *a=new int[M+2];
        for(int i=0;i<M;i++)
        {
            scanf("%d",&a[i]);
        }
        int flag=1;
        for(int i=0;i<M-1;i++)
        {
            if(a[i]>a[i+1])
            {
                flag=0;
                break;
            }
        }
        if(flag==1)
        {
            printf("N/A\n");
        }
        else
        {
            sort(a,a+M);
            for(int i=0;i<M;i++)
            {
               if(i==0)
               printf("%d",a[i]);
               else
                printf(" %d",a[i]);
            }
            printf("\n");
        }
    }
}

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

posted on 2015-04-15 12:06  Tob__yuhong  阅读(80)  评论(0编辑  收藏  举报

导航