1. 程式人生 > >EOJ(排序)——2844. 排序去重

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; }