欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

wiki1285

系統 3875 0

2013-09-21 16:50

      //
      
        By BLADEVIL 


      
      
        var
      
      
        

    n                       :longint;

    i                       :longint;

    x, y                    :longint;

    t, tot                  :longint;

    key, s, left, right     :
      
      
        array
      
      [
      
        0
      
      ..
      
        100010
      
      ] 
      
        of
      
      
         longint;

    ft                      :longint;

    a, b                    :longint;

    ans                     :longint;




      
      
        procedure
      
       right_rotate(
      
        var
      
      
         t:longint);


      
      
        var
      
      
        

    k                       :longint;


      
      
        begin
      
      
        

    k:
      
      =
      
        left[t];

    left[t]:
      
      =
      
        right[k];

    right[k]:
      
      =
      
        t;

    s[k]:
      
      =
      
        s[t];

    s[t]:
      
      =s[left[t]]+s[right[t]]+
      
        1
      
      
        ;

    t:
      
      =
      
        k;


      
      
        end
      
      
        ;




      
      
        procedure
      
       left_rotate(
      
        var
      
      
         t:longint);


      
      
        var
      
      
        

    k                       :longint;


      
      
        begin
      
      
        

    k:
      
      =
      
        right[t];

    right[t]:
      
      =
      
        left[k];

    left[k]:
      
      =
      
        t;

    s[k]:
      
      =
      
        s[t];

    s[t]:
      
      =s[left[t]]+s[right[t]]+
      
        1
      
      
        ;

    t:
      
      =
      
        k;


      
      
        end
      
      
        ;




      
      
        procedure
      
       maintain(
      
        var
      
      
         t:longint;flag:boolean);


      
      
        begin
      
      
        if
      
      
        not
      
       flag 
      
        then
      
      
        if
      
       s[left[left[t]]]>s[right[t]] 
      
        then
      
      
        

            right_rotate(t) 
      
      
        else
      
      
        if
      
       s[right[left[t]]]>s[right[t]] 
      
        then
      
      
        begin
      
      
        

                left_rotate(left[t]);

                right_rotate(t);

            
      
      
        end
      
      
        else
      
      
         exit

    
      
      
        else
      
      
        if
      
       s[right[right[t]]]>s[left[t]] 
      
        then
      
      
        

            left_rotate(t) 
      
      
        else
      
      
        if
      
       s[left[right[t]]]>s[left[t]] 
      
        then
      
      
        begin
      
      
        

                right_rotate(right[t]);

                left_rotate(t);

            
      
      
        end
      
      
        else
      
      
         exit;

    maintain(left[t],false);

    maintain(right[t],true);

    maintain(t,true);

    maintain(t,false);


      
      
        end
      
      
        ;




      
      
        procedure
      
       insert(
      
        var
      
      
         t:longint; v:longint);


      
      
        begin
      
      
        if
      
       t=
      
        0
      
      
        then
      
      
        begin
      
      
        

        inc(tot);

        t:
      
      =
      
        tot;

        key[t]:
      
      =
      
        v;

        s[t]:
      
      =
      
        1
      
      
        ;

        left[t]:
      
      =
      
        0
      
      
        ;

        right[t]:
      
      =
      
        0
      
      
        ;

    
      
      
        end
      
      
        else
      
      
        begin
      
      
        

        inc(s[t]);

        
      
      
        if
      
       v<key[t] 
      
        then
      
       insert(left[t],v) 
      
        else
      
      
         insert(right[t],v);

        maintain(t,v
      
      >=
      
        key[t]);

    
      
      
        end
      
      
        ;


      
      
        end
      
      
        ;




      
      
        function
      
       delete(
      
        var
      
      
         t:longint; v:longint):longint;


      
      
        begin
      
      
        

    dec(s[t]);

    
      
      
        if
      
       (v=key[t]) 
      
        or
      
       (v<key[t]) 
      
        and
      
       (left[t]=
      
        0
      
      ) 
      
        or
      
       (v>key[t]) 
      
        and
      
       (right[t]=
      
        0
      
      ) 
      
        then
      
      
        begin
      
      
        

        delete:
      
      =
      
        key[t];

        
      
      
        if
      
       (left[t]=
      
        0
      
      ) 
      
        or
      
       (right[t]=
      
        0
      
      ) 
      
        then
      
      
        

            t:
      
      =left[t]+right[t] 
      
        else
      
      
        

            key[t]:
      
      =delete(left[t],key[t]+
      
        1
      
      
        );

    
      
      
        end
      
      
        else
      
      
        if
      
       v<key[t] 
      
        then
      
       delete:=delete(left[t],v) 
      
        else
      
       delete:=
      
        delete(right[t],v);


      
      
        end
      
      
        ;




      
      
        function
      
       pre(
      
        var
      
      
         t:longint; v:longint):longint;


      
      
        begin
      
      
        if
      
       t=
      
        0
      
      
        then
      
       exit(-
      
        1
      
      
        );

    
      
      
        if
      
       v<key[t] 
      
        then
      
       pre:=pre(left[t],v) 
      
        else
      
      
        begin
      
      
        

        pre:
      
      =
      
        pre(right[t],v);

        
      
      
        if
      
       pre=-
      
        1
      
      
        then
      
       pre:=
      
        key[t];

    
      
      
        end
      
      
        ;


      
      
        end
      
      
        ;




      
      
        function
      
       succ(
      
        var
      
      
         t:longint; v:longint):longint;


      
      
        begin
      
      
        if
      
       t=
      
        0
      
      
        then
      
       exit(-
      
        1
      
      
        );

    
      
      
        if
      
       key[t]<=v 
      
        then
      
       succ:=succ(right[t],v) 
      
        else
      
      
        begin
      
      
        

        succ:
      
      =
      
        succ(left[t],v);

        
      
      
        if
      
       succ=-
      
        1
      
      
        then
      
       succ:=
      
        key[t];

    
      
      
        end
      
      
        ;


      
      
        end
      
      
        ;






      
      
        begin
      
      
        

    read(n);

    ans:
      
      =
      
        0
      
      
        ;

    t:
      
      =
      
        0
      
      ; tot:=
      
        0
      
      ; s[t]:=
      
        0
      
      
        ;



    
      
      
        for
      
       i:=
      
        1
      
      
        to
      
       n 
      
        do
      
      
        begin
      
      
        

        read(x,y);

        
      
      
        if
      
       x=ft 
      
        then
      
       insert(t,y) 
      
        else
      
      
        if
      
       s[t]=
      
        0
      
      
        then
      
      
        begin
      
      
        

                ft:
      
      =
      
        x;

                insert(t,y);

            
      
      
        end
      
      
        else
      
      
        begin
      
      
        

                a:
      
      =pre(t,y); b:=
      
        succ(t,y);

                
      
      
        if
      
       a=-
      
        1
      
      
        then
      
       a:=-maxlongint 
      
        div
      
      
        10
      
      
        ;

                
      
      
        if
      
       b=-
      
        1
      
      
        then
      
       b:=maxlongint 
      
        div
      
      
        10
      
      
        ;

                
      
      
        if
      
       abs(b-y)<abs(y-a) 
      
        then
      
      
        begin
      
      
        

                    ans:
      
      =(ans+abs(b-y)) 
      
        mod
      
      
        1000000
      
      
        ;

                    b:
      
      =
      
        delete(t,b);

                
      
      
        end
      
      
        else
      
      
        begin
      
      
        

                    ans:
      
      =(ans+abs(y-a)) 
      
        mod
      
      
        1000000
      
      
        ;

                    a:
      
      =
      
        delete(t,a);

                
      
      
        end
      
      
        ;

            
      
      
        end
      
      
        ;

    
      
      
        end
      
      
        ;

    writeln(ans);




      
      
        end
      
      .
    

?

wiki1285


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本a级大片 | 四虎影院最新网址 | 美女网站在线观看视频18 | 日韩在线 在线播放 | 色播视频在线观看 | 久久久久久国产精品免费免费狐狸 | 丝袜 亚洲 另类 欧美 综合 | 来个毛片| 欧美日韩在线视频观看 | 国产91久久最新观看地址 | 奇米线在人线免费视频 | 亚洲天堂2013 | 山岸逢花在线观看无删减 | 久久免费福利 | 久久综合九色综合欧洲色 | 午夜视频1000 | 国产综合99| 69pao强力打造免费高清 | 日韩精品一区二区三区在线播放 | 国产成人av免费观看 | 青青热在线观看视频精品 | 三级免费网 | 天天躁天天碰天天看 | 欧美综合自拍亚洲综合图片区 | 青青久久久国产线免观 | 日韩精品第二页 | 91久久综合九色综合欧美亚洲 | 亚洲国产高清高潮精品美女 | 欧美h视频在线观看 | 亚洲国语| 国产男女自拍视频 | 毛片基地免费视频a | 国产乱码精品一区二区三区中文 | 亚洲精品国产自在久久出水 | 免费视频二区 | 亚洲欧美激情四射 | 人人澡人人澡 | 午夜特级毛片 | 天天看天天干 | 欧美日韩成人一区二区 | 亚洲二区视频 |