南邮 OJ 1683 股价排序问题

股价排序问题

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

比赛描述

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

给定股价序列,

如果已按从小到

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

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

题目来源

NUPT




#include<iostream>
#include<set>
using namespace std;

int main(){
	bool isSorted, isFirst;
	int N, M, num, lastNum;
	multiset<int> iSet;
	cin>>N;
	while(N--){
		cin>>M;
		iSet.clear();
		isSorted = 1;
		isFirst = 1;
		while(M--){
			cin>>num;
			if(isFirst){
				lastNum = num;
				isFirst = 0;
			}else if(isSorted == 1){
				if(num < lastNum){
					isSorted = 0;
				}
				lastNum = num;
			}
			iSet.insert(num);
		}
		if(isSorted){
			cout<<"N/A"<<endl;
		}else{
			multiset<int>::iterator it = iSet.begin();
			cout<<*it;
			for(it++; it!=iSet.end(); it++){
				cout<<' '<<*it;
			}
			cout<<endl;
		}
	}
}


你可能感兴趣的:(ACM,南邮OJ,股价排序问题)