//treap 的简单应用

#include <iostream>
#include<stdio.h>
#include<cstdio>
#include<cstdlib>
using namespace std;
typedef long long ll;
int t1,t2;
struct node
{node *ch[2];int s,v,r;node(int v):v(v){r=rand();s=1;ch[0]=ch[1]=NULL;}void maintain(){s=1;if(ch[0])s+=ch[0]->s;if(ch[1])s+=ch[1]->s;}
}*root;
void rotate(node* &o,int d)
{node *k=o->ch[d^1];o->ch[d^1]=k->ch[d];k->ch[d]=o;o->maintain();k->maintain();o=k;
}
void insert(node* &o,int v)
{if(o==NULL){o=new node(v);o->maintain();return ;}int d=v<o->v?0:1;insert(o->ch[d],v);if(o->ch[d]->r>o->r)rotate(o,d^1);o->maintain();
}
void findsmall(node *o,int v)
{if(o==NULL)return;if(o->v>=v)findsmall(o->ch[0],v);else{t1=o->v;findsmall(o->ch[1],v);}
}
void findbig(node *o,int v)
{if(o==NULL)return;if(o->v<v)findbig(o->ch[1],v);else{t2=o->v;// cout<<"t2:"<<t2<<endl;findbig(o->ch[0],v);}
}int main()
{int n;root=NULL;scanf("%d",&n);int ans=0;for(int i=1;i<=n;i++){int x;scanf("%d",&x);if(i==1)ans+=x;else{t1=-999999999;t2=999999999;findsmall(root,x);findbig(root,x);// cout<<t1<<" "<<t2<<endl;int temp=min(abs(x-t1),abs(x-t2));ans+=temp;}insert(root,x);}printf("%d\n",ans);return 0;
}

CODEVS1296相关推荐

  1. 【Tyvj1185】【codevs1296】【BZOJ1588】营业额统计,Splay练习

    传送门1 传送门2 传送门3 写在前面:身体不舒服,感觉有点差 思路:查询时先找是否有这个元素,没有的话再分别找前驱后继. 注意:BZOJ数据有错,详见讨论版 代码: #include<bits ...

最新文章

  1. c语言程序设计样板,《C语言程序设计》课程设计报告书样板.doc
  2. canal mysql 数据同步
  3. iOS开发-缓存图片到沙盒--思路
  4. 如何修改matplotlib的图例的标题的字体大小
  5. print_w php,THINKPHP的dump打印数组函数,输出在浏览器非常友好。
  6. 内核并发控制---读写自旋锁 (来自网易)
  7. 对java类中注释的认识
  8. 三级网络技术无纸化模拟软件 (未来)教育
  9. JavaWeb实现视频在线播放
  10. 常用的excel函数—汇总
  11. Java 8:那些Java8的常见写法
  12. 微软蓝牙鼠标3600拆解
  13. VUE使用benz-amr-recorder 实现解码、播放
  14. linux 谷歌日语输入法下载软件,Linux Mint---fcitx中文,日语输入法
  15. C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
  16. [译] FACE ID 对易用性意味着什么
  17. python len ljust_python中ljust的用法
  18. codeforces1098D Eels
  19. 华为最新鸿蒙消息,飞象网项立刚:华为鸿蒙7年后全球第一!网友:oppo第一个反对!...
  20. Linux内核scatterlist API介绍 DMA SG搬移

热门文章

  1. Linux(Centos7) 报 “RTNETLINK answers: File exists” 问题的解决
  2. 拆解玩具电池充电器:充久了可能会爆,廉价电路方案让人震惊!
  3. 20doing 动名词
  4. the little schemer 笔记(9)
  5. PPT修改尺寸(修改幻灯片大小)
  6. Android是如何在不同屏幕上适配图片的 -- 或控件大小
  7. 区块链打击食品欺诈:以挪威三文鱼为例
  8. 百度账号更换绑定的手机号
  9. 计算机存储程序的理论由谁提出,存储程序的概念是由谁提出来的
  10. html未响应是什么原因,ie浏览器未响应如何解决