题目描述
有 N 根火柴,第 i 根火柴的长度是 ��Li****。小明很喜欢正方形,所以小明希望用这些火柴拼出尽量多的正方形,但要同时满足如下条件:
一根火柴最多只能用在一个正方形中。
组成正方形的四根火柴,长度必须都相同。
给出 N 根火柴的长度,你的任务是计算:最多可以拼出多少个正方形?
输入格式
第一行,一个整数 N 。
第二行,N 个整数,第 i 个整数是 ��Li****。
数据规模
对于 60% 的数据, 4 <= N <= 50, 1 <= ��Li**** <= 1000。
对于 100% 的数据, 4 <= N <= 5000,1 <= ��Li**** <= 1000000000。
输出格式
一个整数,表示最多能拼出的正方形的数量
样例
输入数据 1
7
1 1 2 2 1 1 2
输出数据 1
1
输入数据 2
20
1 2 3 4 1 2 3 4 1 2 3 1 2 3 4 1 2 3 3 3
```output
输出数据 2
```output
3
样例解释
样例 1 :只能拼出 1 个正方形,正方形的边长是 1 。
样例 2 :能拼出 3 个正方形。
C++
#include<bits/stdc++.h>
using namespace std;
long long n,x=1,a[500005],d;
int main(){
cin>>n;
for(int i=0;i<n;i++) {
cin>>a[i];
}
sort(a,a+n);
a[n]=a[n-1]+1;
for(int i=0;i<n;i++) {
if(a[i]==a[i+1]) x++;
else x=1;
if(x==4) d++,x=0;
}
cout<<d;
return 0;
}

1506

被折叠的 条评论
为什么被折叠?



