EOJ(排序)——2844. 排序去重
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;
}