Điểm:
100 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một mảng gồm \(n\) số nguyên dương \(a_1,\) \(a_2,\) \(a_3,\) \(...,\) \(a_n.\)
Yêu cầu : Hỏi có bao nhiêu cặp số bằng nhau ? \((\)Bao nhiêu cặp \(a_i\) \(=\) \(a_j\) với \(i\) \(\neq\) \(j,\) \((ai,\) \(aj)\) và \((aj,\) \(ai)\) chỉ được tính là \(1\) cặp\().\)
Input
- Dòng thứ nhất là chiều dài \(n\) của mảng \((1\) \(\leq\) \(n\) \(\leq\) \(10^5).\)
- Dòng thứ hai gồm \(n\) số nguyên \(a_1,\) \(a_2,\) \(a_3,\) \(...,\) \(a_n\) \((1\) \(\leq\) \(a_i\) \(\leq\) \(10^5),\) mỗi số cách nhau một khoảng trắng.
Output
- Là số nguyên xác định số lượng các cặp bằng nhau.
Example
Test 1
Input
5
8 2 9 8 1
Output
1
Test 2
Input
7
6 2 4 2 4 3 4
Output
4
Bình luận
include<bits/stdc++.h>
using namespace std;
define ll long long
ll n, i, ans, t;
ll a[100005], dem[100005];
int main() {
cin >> n;
for(i = 0; i < n; i ++) cin >> a[i], dem[a[i]]++;
sort(a, a + n);
for(i = 0; i < n; i += dem[a[i]]) {
t = dem[a[i]];
ans += t * (t - 1) / 2;
}
cout << ans;
return 0;
}
Code c++ cho nhung ai can
'
11 bình luận nữa