EOJ(排序)——2844. 排序去重

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29978597/article/details/86256128

2844. 排序去重

有 n 个 1 到 1000 之间的整数 (1≤n≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再按照指定的排序方式把这些数排序。

输入

第 1 行为字母 A 或 D,A 表示按照升序排序,D 表示按照降序排序。
第 2 行开始有若干个用一个空格或换行符分隔的正整数。

输出

相互之间用一个空格分隔的经去重和排序后的正整数。最后一个数后没有空格。
样例

input

A
20 40 32 67 40 20 89 300 400 15

output

15 20 32 40 67 89 300 400

题目大意:

输入一行数字,按照给定的顺序排序,相同的数字除掉。

题目解析:

简单sort排序,输出的时候要按照格式。

具体代码:

#include<iostream>
#include<algorithm>
using namespace std;
char flag;
int A[110];
bool cmp(int x,int y){
	if(flag=='A')
		return x<y;
	else
		return x>y;
}
int main()
{
    freopen("data.in","r",stdin);
    cin>>flag;
    int k=0,n;
    while(cin>>n){
    	A[k++]=n;
	}
	sort(A,A+k,cmp);
	int tmp=-1;
	for(int i=0;i<k;i++){
		if(A[i]!=tmp){
			cout<<A[i];
			if(i!=k-1)
				cout<<" ";
			tmp=A[i];
		}
	}
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_29978597/article/details/86256128