亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

wiki1285

系統(tǒng) 4336 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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 深夜视频在线 | 久久免费视频8 | 九月丁香婷婷亚洲综合色 | 国产精品午夜久久 | 久久久久久亚洲精品不卡 | 五月开心六月伊人色婷婷 | 久久网免费视频 | 亚洲 欧美 中文 日韩欧美 | 亚洲乱码一区二区三区国产精品 | 性xxx免费| 高清影院|精品秒播3 | 国内精品福利在线视频 | 欧美胖老妇 | 国产91精品一区二区视色 | 欧美高清一区二区三 | 欧美午夜影院 | 国内精品久久久久不卡 | 国产精品亚洲综合色拍 | 久久久久久全国免费观看 | 日本综合色 | 国产成人精品s8sp视频 | 久久久久久久综合狠狠综合 | 亚洲精品一区二区久久 | 久草在线视频在线 | 国产乱肥老妇精品视频 | 国产一区视频在线 | 毛片在线不卡 | 美女女女女女女bbbbbb毛片 | 中文字幕亚洲精品久久 | 九九国产精品视频 | 亚洲日本在线播放 | 色综合夜夜嗨亚洲一二区 | 久久国内精品自在自线400部o | 奇米第四色首页 | 日本久久精品视频 | 在线观看自拍视频 | 一级aaa级毛片午夜在线播放 | 最新午夜韩国理论片77网 | 色综合久久六月婷婷中文字幕 | www.四虎影院在线观看 | 欧美日在线 |