Codeforces 594A - Warrior and Archer

Posted notnight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 594A - Warrior and Archer相关的知识,希望对你有一定的参考价值。

题目大意:给你在一条线上的n(偶数)个点,mike和alice 开始禁点,他们轮流开始,直到最后只剩下两个点,

mike希望剩下的两个点距离尽可能小,alice希望剩下的两个点距离尽可能大,他们都采用最优策略,问你最后

剩下的两个点是什么。

 

这种脑洞题好难啊啊,难受。

 

思路:我们假定剩下了两个点是 x1 和 x2 ,那么最优考虑,mike拿掉的是<x1 和 >x2的点,alice拿掉的是

x1 和 x2 之间的点,所以我们枚举x1 和 x2,因为mike先选,我们取其中的最小值。

技术分享
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2*1e5+5;
ll a[N];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) scanf("%I64d",&a[i]);
    sort(a+1,a+1+n);
    ll ans=1e18;
    for(int i=1;i<=n;i++)
    {
        if(i+n/2<=n) ans=min(ans,a[i+n/2]-a[i]);
    }
    cout<<ans<<endl;
    return 0;
}
View Code

 

以上是关于Codeforces 594A - Warrior and Archer的主要内容,如果未能解决你的问题,请参考以下文章

ruby Códigodelnivel 8,modo Intermediate de Ruby Warrior

ruby Códigodelnivel 9,modo Intermediate de Ruby Warrior

ruby Códigodelnivel 7,modo Intermediate de Ruby Warrior

ruby Códigodelnivel 6,modo Intermediate de Ruby Warrior

ruby Códigodelnivel 5,modo Intermediate de Ruby Warrior

ruby Códigodelnivel 4,modo Intermediate de Ruby Warrior