Sắp xếp có điều kiện


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 977M

Author:
Problem type

Cho 1 dãy số nguyên có N (1<=N<=200) phần tử \(a_1, a_2, .... , a_N\) nhiệm vụ của bạn là sắp xếp những số chia hết cho 3 tăng dần rồi đến những số chia 3 dư 1 tăng dần rồi đến chia 3 dư 2 cũng tăng dần

Input

Dòng đầu tiên chứa số nguyên dương N \((N \le 200)\)

Dòng tiếp theo chứa N số nguyên không âm có giá trị không vượt quá \(1000\)

Output

Dãy được sắp theo mô tả ở trên mỗi phần tử cách nhau 1 khoảng trống

Example

Input

12
4 7 2 8 4 8 3 2 4 9 3 6

Output

3 3 6 9 4 4 4 7 2 2 8 8
tichpx

Comments


  • 1
    duc6701  commented on March 8, 2021, 10:42 p.m. edited
    #include<bits/stdc++.h>
    
    using namespace std;
    struct cmp {
        bool operator()(int a,int b) {
            return(a%3==b%3?a<b:a%3<b%3);
        }
    };
    int main() {
    //  set<int> S;
    //  for(int x:{4,7,2,8,4,8,3,2}) S.insert(x);
    //  cout<<"Set: "; for(auto x:S) cout<<x<<" ";
    //  cout<<"\nPhan tu be nhat: "<<*S.begin();
    //  cout<<"\nPhan tu lon nhat: "<<*S.end();
    //  auto it=S.find(5);
    //  if(it==S.end()) S.erase(it);
    //  cout<<"Set: "; for(auto x:S) cout<<x<<" ";
    
        multiset<int,cmp> S;
        int n,x;
        cin>>n;
        while(n--) {
            cin>>x;
            S.insert(x);
        }
        for(auto x:S) cout<<x<<" ";
    }