Rút gọn tập hợp số nguyên


Submit solution

Points: 3 (partial)
Time limit: 1.0s
Python 3 2.0s
Memory limit: 98M
Python 3 977M

Author:
Problem type

Cho dãy số nguyên \(a_1,a_2, ... ,a_N\), nhiệm vụ của bạn là rút gọn tập hợp số này sao cho những phần tử trùng nhau chỉ giữ lại một phần tử đầu tiên, những phần tử xuất hiện sau thì loại bỏ hết.

Input

Dòng đầu tiên chứa số nguyên dương \(N\) là số phần tử của dãy \((N \le 10^6)\). Dòng tiếp theo chứa N số nguyên sao cho \( -32768 < a_i <32768 \).

Output

Dãy số sau khi rút gọn

Example 1

Input

10
1 9 0 0 1 5 -7 0 -7 9

Output

 1 9 0 5 -7
tichpx

Comments


  • 0
    Hoan_CNTT_VA2_K61  commented on May 18, 2021, 3:22 p.m.

    Cho e hỏi làm sao để Output ra theo đúng thứ tự như đề bài ạ. Dùng map nó tự sắp xếp lại rồi


    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
        int n;
        cin >> n;
        map<int,int>A;
        for(int i=0;i<n;i++){
            int x;
            cin >> x;
            A[x]++;
        }
        for(auto p:A){
            cout << p.first << " ";
        }
        return 0;
    }

    • 0
      TICHPX  commented on May 19, 2021, 1:45 a.m.

      Dùng map<int,bool> thằng nào có rồi thì ko out còn chưa có thì out, sau đó cho vào map


    • 1
      CThành_CNTT6_K61  commented on May 18, 2021, 10:55 p.m.

      bạn/anh cứ duyệt theo mảng ban đầu ở vòng for thứ 2, phần tử nào in r thì cho A[x[i]] = -1 để làm điều kiện đã in phần tử này là đc


  • 2
    DuyAnhhh  commented on Sept. 23, 2020, 9:23 a.m.

    Code bạn chạy nhiều vòng lặp quá,bài này bạn có thể sử dụng map để đánh dấu những số đã xuất hiện rồi nhé :3


    • -1
      minyoongi  commented on Oct. 4, 2020, 11:03 a.m. edited
      #include<bits/stdc++.h>
      using namespace std;
      const int MAX=1e6;
      int a[MAX];
      int main()
      {
         ios_base::sync_with_stdio(0);
         cin.tie(NULL);
         cout.tie(NULL);
         int n;
         cin>>n;
         map<int,int> cnt;
         for(int i=0;i<n;i++)
         {
           cin>>a[i];
           cnt[a[i]]++;
         }
         for(auto it:cnt)
         {
          cout<<it.first<<" ";
         }
      
      
      
      }

  • 1
    minyoongi  commented on Sept. 23, 2020, 8:48 a.m.

    ai xem hộ code mình bị lỗi tg ạ


  • 1
    minyoongi  commented on Sept. 23, 2020, 8:48 a.m. edited
    #include<bits/stdc++.h>
    using namespace std;
    const int MAX=1e6;
    int a[MAX];
    int main()
    {
       ios_base::sync_with_stdio(0);cin.tie(NULL); cout.tie(NULL);
       int n;
       cin>>n;
       for(int i=1;i<=n;i++)
       cin>>a[i];
       for(int i=1;i<n;i++)
       {
        for(int j=i+1;j<=n;j++)
        {
            if(a[i]==a[j])
            {
                int tg=j;
                for(int k=tg+1;k<=n;k++)
                {
                    a[k-1]=a[k];
                }
                n--;
            }
        }
        }
        for(int i=1;i<=n;i++)
        cout<<a[i]<<" ";
    }