股價排序問題
時間限制(普通/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");
}
}
}