Codeforces 12D Ball 树状数组模拟3个元素的排序

2015-11-21 02:01:52 · 作者: · 浏览: 10

题目链接:点击打开链接


#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        #include
        #include
        
          #include
         
           #include
          
            #include
           
             #include
            
              using namespace std; #define N 500005 #define ll int ll n; ll c[N], maxn; inline ll lowbit(ll x){return x&(-x);} void change(ll pos, ll val){ while(pos)c[pos]=max(c[pos],val), pos-=lowbit(pos); } ll maxx(ll pos){ ll ans = -1; while(pos<=maxn)ans = max(ans,c[pos]),pos+=lowbit(pos); return ans; } struct node{ ll b[3],num; }w[N]; bool cmp0(node x, node y){return x.b[0]
             
              y.b[1];} int main(){ ll i,j; while(cin>>n) { for(i=0;i
              
               w[j].b[2]) ans++; for(j = i; j < n && w[i].b[1] == w[j].b[1]; j++) change(w[j].num, w[j].b[2]); i = j; } cout<