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ó bạn nếu ~∃j ≠ i ,a_i = a_j~. Hãy đếm số lượng số có bạ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ó bạn tìm được.
Sample
Input #1
6
1 2 2 3 1 2
Output #1
5
Hint
Xét #1:
- Có ~5~ số có bạn bao gồm hai số ~1~ và ba số ~2~.
Problem source: Chuyên Sơn La Online Judge
Bình luận
HEHE BOIZ
include<bits/stdc++.h>
using namespace std; long long a[1000001],f[1000001]; int main(){ iosbase::syncwith_stdio(false); cin.tie(0);cout.tie(0); int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; f[a[i]]++; } int dem=0; for(int i=1;i<=n;i++){ if(f[a[i]]>1) dem++; } cout<<dem; return 0; }
#include <bits/stdc++.h>
using namespace std; unsigned long long n,a[1000001],i,f[1000001],s=0,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;
}