题解 P6420 【[COCI2008-2009#2] KORNISLAV】
MZY666
·
·
题解
原题传送门。在窝的博客中食用更佳。
【 题意概括 】
给定四个线段的长度 a,b,c,d,求用它们围组成的长方形最大面积为多少。
【 思路 】
与第一篇题解相同,这里再讲详细一点:
既然要最大面积,那就尽量要最大的长以及最大的宽。
宽肯定是比长要小(或等)的。
想一想:这里的长方形中每一组对边的较小的那一条肯定是使得较长的那一段有一段发挥不到增大(也就浪费了)。
所以就得尽量使“浪费”减小。
那么可以让最小的那条线段作为一条宽,第二小的作为其对边(相比另外两条长的损耗小);
第二大的作为一条长,最大的作为长的对边。
代码实现见下。
### 【 代码实现 + 注释 】
```cpp
#include<bits/stdc++.h>//万能头文件可好
using namespace std;
int a[5];//数组定义在外面方便一些
int main(){
for(int i=1;i<=4;i++)cin>>a[i];//输入a,b,c,d
sort(a+1,a+1+4);//排序
cout<<a[1]*a[3]<<endl;//输出长*宽的和。
return 0;//over
}
```
来点花样,挑战本题最短C++代码(不喜勿喷):
```cpp
#include<bits/stdc++.h>
int a[5],i=1;int main(){for(;i<=4;)std::cin>>a[i++];std::sort(a+1,a+1+4);std::cout<<a[1]*a[3];}
```
最后,由于作者自愿禁言了,如果有建议请私信。否则将**无法**回复您哦!
完结撒花~(疯狂暗示 AOA