NKOI 5719 构造矩形

何老板有N根木棍,需要选取四根构成矩形以获得最大面积。通过排序木棍长度并优化选择策略,可以找到最佳组合。样例展示了解题思路,对于n<10^5且木棍长度小于10^9的整数,能确保找到解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

何老板有N根直木棍,第i根木棍的长度为Ai
何老板要你从中选四根木棍,并使得他们能构成一个矩形(可以是正方形)。请你计算出最大可能得到的矩形的面积。

输入格式

第一行,一个整数N
第二行,N个空格间隔的整数,表示木棍的长度

输出格式

一行,一个整数,表示矩形的面积

样例输入 1

6
3 1 2 4 2 1

样例输出 1

2
样例解释:构造1x2的矩形

样例输入 2

4
1 2 3 4

样例输出 2

0

样例输入 3

10
3 3 3 3 4 4 4 5 5 5

样例输出 3

20

提示

n<10的5次方

a[i]<10的9次方

a[i]是整数

可以写出这段代码

原理很简单

从大到小排序后再进行操作即可

#include<bits/stdc++.h>
#define ll long long
/*#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")*/
using namespace std;
ll n,a[200005],ans[10];//初始化 
bool cmp(ll x,ll y) {//排序函数 
	return x>y;
}
int main() {
	/*ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);*/
	cin>>n;
	for(int i=1; i<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值