Số Đặc Biệt

Xem dạng PDF

Gửi bài giải

Điểm: 0,01
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: SDB.INP
Output: SDB.OUT

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một dãy gồm ~N~ số nguyên ~A_1, A_2, ..., A_N~. Hãy đếm và đưa ra số lượng số đặc biệt trong dãy ~A~.

(Số đặc biệt là số chỉ xuất hiện đúng một lần trong dãy số)

Input

Dữ liệu vào từ tệp SDB.INP có cấu trúc:

  • Dòng đầu là số nguyên ~N~ (~0 < N \leq 10^6~).

  • ~N~ dòng tiếp theo, dòng thứ ~i~ chứa số nguyên ~A_i~ (~0 < i \leq N~, ~|A_i| \leq 10^9~).

Output

Ghi ra tệp SDB.OUT có cấu trúc:

  • Dòng đầu tiên ghi số lượng số đặc biệt.

  • Các dòng tiếp theo, mỗi dòng ghi một số đặc biệt (theo thứ tự tính từ đầu dãy ~A~).

Sample Input 1

8
9
9
7
7
6
11
9
5

Sample Output 1

3
6
11
5

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    duongoi281012  đã bình luận lúc 7, Tháng 12, 2025, 16:52

    không biết unordered_map thì phải làm gì

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int maxn = 1000009;
    bool binary(int n, int a[], int x)
    {
        int l = 1, r = n;
        while(l <= r)
        {
            int mid = l + (r - l) / 2;
            if(a[mid] == x) return 1;
            else if(a[mid] < x) l = mid + 1;
            else r = mid - 1;
        }
        return 0;
    }
    int a[maxn], b[maxn], c[maxn];
    int main()
    {
        freopen("SDB.INP", "r", stdin);
        freopen("SDB.OUT", "w", stdout);
        ios_base :: sync_with_stdio(0);
        cin.tie(NULL);
        int n;
        cin >> n;
        for(int i = 1; i <= n; i++) {cin >> a[i]; b[i] = a[i];}
        sort(b + 1, b + 1+ n);
        int dem = 1;
        for(int i = 1; i <= n; i++)
        {
            int j = i + 1;
            while(j <= n && b[j] == b[i]) j++;
            if(j - i == 1) c[dem++] = b[i];
            i = j - 1;
        }
        cout << dem - 1 << '\n';
        for(int i = 1; i <= n; i++)
        {
            if(binary(dem, c, a[i])) cout << a[i] << '\n';
        }
    }
    

  • -1
    tranhongminh21082007  đã bình luận lúc 21, Tháng 11, 2025, 1:33
    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    unordered_map<ll,int> m;
    const ll N = 1e6+1;
    ll a[N];
    vector<ll> v;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        // freopen("SDB.INP","r",stdin);
        // freopen("SBD.OUT","w",stdout);
        int n;cin>>n;
        for(int i=0;i&lt;n;i++) {
            cin>>a[i];
            m[a[i]]++;
        }
        for(int i=0;i&lt;n;i++) {
            if(m[a[i]] == 1) {
                v.push_back(a[i]);
            }
        }
        cout << v.size()<<"\n";
        for(int i:v) cout << i << "\n";
        return 0;
    }
    

  • -4
    lvnphong12qb  đã bình luận lúc 24, Tháng 8, 2025, 7:18

    finalllllllllllllllllllllllllllllllllllllllyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy im correct :sob:

    include<bits/stdc++.h>

    using namespace std; int main() { iosbase::syncwithstdio(false); cin.tie(NULL); cout.tie(NULL); freopen("SDB.inp","r",stdin); freopen("SDB.out","w",stdout); long long n,inp; cin>>n; vector<long long> order; unorderedmap<long long,int> mp ((int) 1e7); for (long long i = 0; i < n; i++) { cin>>inp; mp[inp]++; if (mp[inp] == 1) order.pushback(inp); // record first appearance } vector<long long> b; for (auto i : order) if (mp[i] == 1) b.pushback(i); cout<<b.size()<<endl; for (auto i : b) cout<<i<<endl; } <

    pre-alloc den 1e7 moi dung :broken-heart:


  • -7
    hohoanghai5042011  đã bình luận lúc 14, Tháng 7, 2025, 1:55

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 6
    lamboylom  đã bình luận lúc 13, Tháng 7, 2025, 6:39 chỉnh sửa

    NHIỀU BÁC BỊ TLE THÌ NHỚ KHAI BÁO TRƯỚC SỐ LƯỢNG PHẦN TỬ CHO MAP NHÉ


  • 2
    hailomathepuck  đã bình luận lúc 15, Tháng 5, 2025, 8:26

    include <bits/stdc++.h>

    define ll long long

    using namespace std;

    vector<ll> res; unordered_map<ll, int> mp; const ll N = 1e6 + 1; ll n, a[N];

    int main() { freopen("SDB.INP", "r", stdin); freopen("SDB.OUT", "w", stdout); ios::syncwithstdio(NULL); cin.tie(NULL); cout.tie(NULL);

    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        mp[a[i]]++;
    }
    for (int i = 1; i <= n; i++) {
        if (mp[a[i]] == 1) res.push_back(i);
    }
    cout << res.size() << '\n';
    for (int i : res) cout << a[i] << '\n';
    

    }


  • -1
    giaphudthw123  đã bình luận lúc 6, Tháng 5, 2025, 2:13

    code full cho anh em

    include <bits/stdc++.h>

    using namespace std; unorderedmap<long long,int>m; vector<long long>a,b; long long n,temp; int main(){ iosbase::syncwithstdio(false); cin.tie(NULL); cout.tie(NULL); freopen("SDB.INP","r",stdin); freopen("SDB.OUT","w",stdout); cin>>n; while(n--){ cin>>temp; m[temp]++; a.pushback(temp); } for(int i=0;i<a.size();i++) if(m[a[i]]==1)b.pushback(i); cout<<b.size()<<"\n"; for(int i:b)cout<<a[i]<<"\n"; }


  • 0
    longlph23it  đã bình luận lúc 5, Tháng 5, 2025, 8:06

    cần code C++ giải full test case, được có 15 test mấy


  • 1
    Nam_Khuong2312  đã bình luận lúc 23, Tháng 4, 2025, 1:31 chỉnh sửa

    Py ko nổi ,đc 9 test:)


  • -5
    trungdzvcb  đã bình luận lúc 12, Tháng 4, 2025, 15:34

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -6
    hungnguyen123  đã bình luận lúc 7, Tháng 4, 2025, 6:12

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -3
      HoangQuan_123  đã bình luận lúc 12, Tháng 4, 2025, 14:19

      dùng unordered_map thì ko bị TLE á


    • -22
      75259Nguyen  đã bình luận lúc 7, Tháng 4, 2025, 6:23

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


      • -4
        nguyentuananhtuna  đã bình luận lúc 7, Tháng 4, 2025, 10:00

        Nói thế thì chịu r =))