题解:P14137 「SFMOI Round II」Strange Covering Game

· · 题解

解题思路

分两个情况讨论。

k=1 时:由于一个点也被看作面积为 0 的矩形,所以答案为 0

k>1 时:我们可以选出最大、最小的 a_i,记为 a_{\max},a_{\min},此时的点集为:

S=\{(a_{\max},a_{\max}),(a_{\max},a_{\min}),(a_{\min},a_{\max}),(a_{\min},a_{\min})\}

所以,我们选了 2 个点,最大面积为 (a_{\max}-a_{\min})^2

Code

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,k,maxn=0,minn=INT_MAX,a;
    cin>>n>>k;
    if(k<=1)
    {
        cout<<0;return 0;
    }
    for(int i=1;i<=n;i++)
        cin>>a,minn=min(minn,a),maxn=max(maxn,a); 
    cout<<(maxn-minn)*(maxn-minn);
    return 0;
}