EOJ(排序)——2844. 排序去重
阿新 • • 發佈:2019-01-11
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;
}