SCBN2 - Số cặp bằng nhau 2

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 một dãy gồm ~n~ số nguyên, hãy đếm số cặp bằng nhau trong dãy

Input

  • Dòng đầu tiên chứa duy nhất một số nguyên dương ~n~ (số phần tử trong dãy).
  • Dòng thứ hai chứa n số nguyên là các phần tử ~a_1,a_2,…,a_n~

Giới hạn:

  • ~1≤n≤10^5,0≤a_i≤5.10^4~

Output

  • In ra trên một dòng số nguyên không âm là số cặp bằng nhau liên tiếp trong dãy.

Sample

Input #1
4
3 1 2 3
Output #1
1
Input #2
5
4 1 1 2 2
Output #2
2
Input #3
6
5 3 1 2 1 1
Output #3
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
    ngusidan123  đã bình luận lúc 8, Tháng 2, 2024, 13:52

    include <bits/stdc++.h>

    using namespace std;

    define ll long long

    void solve() { ll n;cin >> n; ll a[n]; for (int i=0 ; i < n ;i=i+1) { cin >>a[i];

    } ll dem=0; sort (a,a+n); for (int i=0 ; i <n ;i=i+1) { for (int j=i+1;j<n;j=j+1) {

    if (a[i]==a[j]) { dem=dem+1; } else { break; } } } cout << dem;

    } int main() { solve(); }


    • 0
      van123dz  đã bình luận lúc 3, Tháng 4, 2024, 15:10

      O(n^2) =))


  • 0
    lhnhung258  đã bình luận lúc 20, Tháng 1, 2024, 4:10

    test 7 là gì thế ạ


  • 0
    baduy  đã bình luận lúc 23, Tháng 12, 2023, 7:30

    bài này bạn có thể sử dụng map để lưu tần suất xuất hiện của các phần tử trong mảng, xong bạn check nếu số lần xuất hiện lớn hơn 2 thì bạn tính tổ hợp chập 2


  • 1
    phamngocquyen  đã bình luận lúc 17, Tháng 12, 2023, 3:04

    Acc: 100%

    Goi y: su dung tim kiem nhi phan, dung to hop chap k cua 2 de tinh so cap

    include <bits/stdc++.h>

    using namespace std; long long n, a[1000009], dem = 0, k; int main(){

    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];
    sort(a+1, a+n+1);
    for(int i=1; i<=n; i++){
        k = (upper_bound(a+1, a+n+1, a[i]) - a) - (lower_bound(a+1, a+n+1, a[i]) - a);
        dem += (k*(k-1))/2;
        i = upper_bound(a+1, a+n+1, a[i]) - a;
    }
    cout<&lt;dem;
    

    }


  • -2
    vqlong  đã bình luận lúc 20, Tháng 10, 2023, 15:51

    đề bài sai, giới hạn 1 <= n <= 10^5, 0 <= ai <= 5*10^4 nhưng có case test số rất lớn, kiểu long long mới chứa được


    • 0
      sang41dz  đã bình luận lúc 29, Tháng 2, 2024, 14:57

      ban dua minh day a. So luong cap la to hop chap 2 cua k phan tu voi k te nhat bang n.Int chua bang mat


  • 0
    tide1  đã bình luận lúc 29, Tháng 8, 2023, 14:58

    .


  • 0
    phanh  đã bình luận lúc 13, Tháng 8, 2023, 2:56

    Bài này mng làm cách nào vậy ạ?? E làm mãi k ac được :((


    • 0
      baduy  đã bình luận lúc 23, Tháng 12, 2023, 7:32

      bài này bạn có thể sử dụng map hoặc mảng đếm để lưu tần suất xuất hiện rồi ktra nếu xuất hiện từ 2 lần trở lên thì bạn tính tổ hợp chập 2


      • -1
        chinhle  đã bình luận lúc 11, Tháng 2, 2024, 14:35

        tôi có dùng rồi nhưng tính giai thừa cũng bị tle


    • 0
      tide1  đã bình luận lúc 29, Tháng 8, 2023, 14:57

      Bạn tham khảo ý tưởng giải bài : link enter link description here