您的位置:首页 > 其它

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

2019-01-10 21:12 369 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: