Educational Codeforces Round 16 B. Optimal Point on a Line【水】

本文介绍了一个寻找线性坐标上使距离之和最小的点的问题及其解决方案。通过输入一系列整数坐标,采用排序方法找到中位数作为最优位置,确保了算法的高效性和正确性。

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

B. Optimal Point on a Line
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given n points on a line with their coordinates xi. Find the point x so the sum of distances to the given points is minimal.

Input

The first line contains integer n (1 ≤ n ≤ 3·105) — the number of points on the line.

The second line contains n integers xi ( - 109 ≤ xi ≤ 109) — the coordinates of the given n points.

Output

Print the only integer x — the position of the optimal point on the line. If there are several optimal points print the position of the leftmost one. It is guaranteed that the answer is always the integer.

Example
input
4
1 2 3 4
output
2


原题链接:http://codeforces.com/contest/710/problem/B

题意:给你一些在X轴上的点,让你找一点,使其到其它所有点的距离之和最小。

好像和HDU11页上有一题好像。

AC代码:

#include <bits/stdc++.h>
using namespace std ;
const int maxn=int(3*1e5)+5;
int a[maxn];

int main()
{
    int n;
    ios::sync_with_stdio(false);
    //freopen("B.txt","r",stdin);
    while(cin>>n)
    {
        for(int i=0;i<n;i++)
            cin>>a[i];
        sort(a,a+n);

        cout<<a[(n-1)/2]<<endl;
    }
    return 0;
}

尊重原创,转载请注明出处: http://blog.youkuaiyun.com/hurmishine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值