Đ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>
define ll long long
using namespace std;
ll solve(ll n){
return n*(n - 1)/2;
}
ll a[1000005],n,dem = 0;
int main(){
cin >> n;
set<ll> ms;
multiset<ll> ls;
for (ll i = 1;i <= n;i++){
cin >> a[i];
ms.insert(a[i]);
ls.insert(a[i]);
}
for (auto x : ms){
if (ls.count(x) < 2){
continue;
}
else{
dem += solve(ls.count(x));
}
}
cout << dem;
}
code cho ai cần
code sai nha mọi người ơi