股价排序问题
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 81920 KByte
总提交 : 398 测试通过 : 76
总提交 : 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 "); } 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(" "); } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。