poj3579

来源:互联网 发布:sql酒店管理系统 编辑:程序博客网 时间:2024/06/05 02:01
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAX_N 100010typedef long long LL;int N;int x[MAX_N];bool C(int m){        LL total = (LL) N * (N - 1) / 2;        LL num = 0;                for(int i = 0;i < N; i++){                num += (x+N) - lower_bound(x + i + 1, x + N, x[i] + m);        }                return total - num <= (total - 1) / 2;        }int solve(){        sort(x, x + N);        int lb = 0, ub = 1000000000;        while(ub - lb > 1){                int mid = (ub + lb) / 2;                if(C(mid)) lb = mid;                else ub = mid;        }        return lb;}int main(){        while(scanf("%d", &N) != EOF){                for(int i = 0;i < N; i++)                        scanf("%d", &x[i]);                int ans = solve();                printf("%d\n", ans);        }        return 0;}

0 0
原创粉丝点击