FANUM - Số độc thân

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

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

Cho số nguyên dương ~n~ và dãy ~n~ số nguyên dương ~a_1, a_2, …, a_n~. Ta gọi một số ~a_i~ là độc thân nếu ~a_i ≠ a_j, \forall j ≠ i~. Hãy đếm số lượng số độc thân trong dãy số trên.

Input

  • Dòng đầu ghi số nguyên dương ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên dương ~a_1, a_2, …, a_n~. Hai số liên tiếp được ghi cách nhau một dấu cách.

Giới hạn:

  • ~80\%~ số điểm có ~n ≤ 10^3~ và ~1 ≤ a_i ≤ 10^6~;
  • ~20\%~ số điểm có ~10^3 < n ≤ 10^6~ và ~1 ≤ a_i ≤ 10^6~.

Output

  • Một dòng duy nhất ghi số nguyên là số lượng số độc thân tìm được.

Sample

Input #1
5
1 2 2 3 1
Output #1
1

Hint

Quan sát #1, có duy nhất một số độc thân là số ~3~.

Problem source: Chuyên Sơn La Online Judge


Bình luận

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



  • -1
    gtmailong  đã bình luận lúc 23, Tháng 4, 2024, 23:27

    c++ full ac

    #include <set>
    #include <iostream>
    
    using namespace std;
    
    int f[1000001];
    
    int main() {
        int n, dem = 0;
        cin >> n;
        int a[n];
        for (int i =0 ; i< n; i++) {
            cin >> a[i];
            f[a[i]]++;
        }
        for (int x : a) {
            if (f[x] == 1) dem++;
        }
        cout << dem;
        return 0;
    }
    

  • 0
    Nigger123  đã bình luận lúc 12, Tháng 4, 2024, 8:54

    ai cho mình ý tưởng bằng python với, mịnh làm toàn bị time out


    • 0
      phubinhtinh  đã bình luận lúc 12, Tháng 4, 2024, 17:37 chỉnh sửa

      ý tưởng của mình khá tồi nhưng vẫn ac được:

      B1 Mình sắp xếp list theo kiểu tăng dần:

      B2 Đuyệt 1 vòng for:

      B3 Nếu phần tử đó là số độc thân thì nó phải khác phần tử đứng sau nó và cả phần tử đứng trước đó

      B4 Khi bạn duyệt đến phần tử cuối cùng thì bạn chỉ cần so sánh với phần tử đứng sau nó

      n = int(input())

      m = input().split()

      a = list(map(int,m))

      a.sort()

      dem = 0

      for i in range(n):

      if i!=n-1:
          if a[i] != a[i - 1] and a[i] != a[i + 1]:
              dem+=1
      else:
          if a[i-1] != a[i]:
              dem+=1
      

      print(dem)


  • 0
    thangok  đã bình luận lúc 8, Tháng 4, 2024, 8:28

    include<bits/stdc++.h>

    using namespace std; int main(){ iosbase::syncwith_stdio(false); cin.tie(0);cout.tie(0); int n; cin>>n; int a[n]; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); int dem=0; if(a[1]!=a[2]) dem++; if(a[n-1]!=a[n]) dem++; for(int i=2;i<n;i++){ if((a[i]!=a[i-1])&&(a[i]!=a[i+1])) dem++; } cout<<dem; return 0; }


  • 0
    Aothatday  đã bình luận lúc 26, Tháng 2, 2024, 2:51

    include <bits/stdc++.h>

    using namespace std; int n,x,a[1000006]={},d=0; int main() { iosbase::syncwith_stdio(false);cin.tie(NULL); cin>>n; while(n--) { cin>>x; a[x]++; } for(auto it:a)if(it==1)d++; cout<<d; }


  • 8
    hohoanghai5042011  đã bình luận lúc 15, Tháng 1, 2024, 10:53 sửa 4

    Đã ac 100%. Nếu ai không biết làm thì tham khảo. Nhớ cho mình 1 vote nhé. Chương trình được viết bởi ngôn ngữ C++

    #include <bits/stdc++.h>

    using namespace std; unsigned long long n,a[1000001],i,f[1000001],s,d=0; int main() { cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; f[a[i]]++; } for(i=1;i<=n;i++) { if(f[a[i]]==1) d++; } cout<< d ; }


  • 1
    trinhlong160109  đã bình luận lúc 19, Tháng 12, 2023, 13:31

    mảng phân phối


  • 2
    hohoanghai5042011  đã bình luận lúc 9, Tháng 12, 2023, 7:25

    áp dụng mảng phân phối là ra


  • -7
    nguyenminhtu  đã bình luận lúc 5, Tháng 8, 2023, 14:00

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