首页 > 其他 > 详细

bzoj 1588 bst

时间:2014-02-18 19:07:08      阅读:432      评论:0      收藏:0      [点我收藏+]

  用set存下就好了。

bubuko.com,布布扣
/**************************************************************
    Problem: 1588
    User: BLADEVIL
    Language: C++
    Result: Accepted
    Time:180 ms
    Memory:1468 kb
****************************************************************/
 
//By BLADEVIL
#include <cstdio>
#include <set>
#define inf 1<<30
 
using namespace std;
 
int n,ans;
 
int main()
{
    int x;
    set<int>bt;
    bt.insert(inf); bt.insert(-inf);
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
    {
        //printf(" %d\n",ans);
        if (scanf("%d",&x)==EOF) x=0;
        if (i==1) ans=x,bt.insert(x); else
        {
            int a,b;
            a=*bt.upper_bound(x); b=*(--bt.upper_bound(x));
            ans+=(a-x<x-b)?a-x:x-b;
            bt.insert(x);
        }
    }
    printf("%d\n",ans);
    return 0;
}
 
bubuko.com,布布扣

bzoj 1588 bst

原文:http://www.cnblogs.com/BLADEVIL/p/3554161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!