题目描述
有 n 根可以忽视粗细的棒子。第 i 棒的长度是 ai。
有人想从这些棒子中选出4个棒子,用这些棒子做 1 个矩形(包括正方形)。
求最大可以制作的矩形面积。
输入
第一行,n。
第二行,ai, 表示n 个棒子的长度。
输出
最大矩形面积,如果无法组成矩形,输出0。
样例输入 Copy
【样例1】 6 3 1 2 4 2 1 【样例2】 10 3 3 3 3 4 4 4 5 5 5 【样例3】 4 1 2 3 4
样例输出 Copy
【样例1】 2 【样例2】 20 【样例3】 0
提示
30%的数据:4≤n≤50;
100%的数据: 4≤n≤105, 1≤ai≤10^9
代码实现:
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long a[100090];
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1,greater<int>());long long l=0,w=0;/*for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;*/for(int i=1;i<n;i++){if(a[i]==a[i+1]){l=a[i];a[i]=0;a[i+1]=0;break;}else{l=0;}}sort(a+1,a+n+1,greater<int>());/*for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;*/for(int i=1;i<n;i++){if(a[i]==a[i+1]){w=a[i];break;}else{w=0;}}cout<<l*w;return 0;
}