F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_27948516_23407.cpp: In function 'int Lsearch(int, int, int, int, int, int)':
0_0_27948516_23407.cpp:35:1408: error: expected '}' at end of input
         if ( s[l] == '(' ) lnum[o] = 1 , rnum[o] = 0 ;        else lnum[o] = 0 , rnum[o] = 1 ;        return ;    }    int m = mid ;    build ( lson ) ;    build ( rson ) ;    pushup ( o ) ;}void  update ( int x , int o , int l , int r ) {    if ( l == r ) {        lnum[o] ^= 1 ;        rnum[o] ^= 1 ;        return ;    }    int m = mid ;    if ( x <= m ) update ( x , lson ) ;    else update ( x , rson ) ;    pushup ( o ) ;}int Lnum , Rnum ;void  query ( int L , int R , int o , int l , int r ) {    if ( L <= l && r <= R ) {        int x = min ( Lnum , rnum[o] ) ;        Lnum = Lnum + lnum[o] - x ;        Rnum = Rnum + rnum[o] - x ;        return ;    }    int m = mid ;    if ( L <= m ) query ( L , R , lson ) ;    if ( m <  R ) query ( L , R , rson ) ;}int Lsearch ( int L , int R , int v , int o , int l , int r ) {    int m = mid ;    if ( L <= l && r <= R ) {        int x = min ( Lnum , rnum[o] ) ;        if ( l == r && Rnum + rnum[o] - x == v ) return l ;        if ( Rnum + rnum[o] - x < v ) {            Lnum = Lnum + lnum[o] - x ;            Rnum = Rnum + rnum[o] - x ;            return 0 ;        }        int y = min ( Lnum , rnum[ls] ) ;        if ( Rnum + rnum[ls] - y >= v ) {            return Lsearch ( L , R , v , lson ) ;        } else {            Rnum = Rnum + rnum[ls] - y ;            Lnum = Lnum + lnum[ls] - y ;            return Lsearch ( L , R , v , rson ) ;        }    }    //printf ( ": %d %d %d %d %d %d %d\n" , Lnum , Rnum , L , R , o , l , r ) ;    if ( R <= m ) return Lsearch ( L , R , v , lson ) ;    if ( m <  L ) return Lsearch ( L , R , v , rson ) ;    int x = Lsearch ( L , R , v , lson ) ;    if ( !x ) return Lsearch ( L , R , v , rson ) ;}int Rsearch ( int L , int R , int v , int o , int l , int r ) {    int m = mid ;    if ( L <= l && r <= R ) {        int x = min ( Rnum , lnum[o] ) ;        if ( l == r && Lnum + lnum[o] - x == v ) return l ;        if ( Lnum + lnum[o] - x < v ) {            Lnum = Lnum + lnum[o] - x ;            Rnum = Rnum + rnum[o] - x ;            return 0 ;        }        int y = min ( Rnum , lnum[rs] ) ;        if ( Lnum + lnum[rs] - y >= v ) {            return Rsearch ( L , R , v , rson ) ;        } else {            Lnum = Lnum + lnum[rs] - y ;            Rnum = Rnum + rnum[rs] - y ;            return Rsearch ( L , R , v , lson ) ;        }    }    if ( R <= m ) return Rsearch ( L , R , v , lson ) ;    if ( m <  L ) return Rsearch ( L , R , v , rson ) ;    int x = Rsearch ( L , R , v , rson ) ;    if ( !x ) return Rsearch ( L , R , v , lson ) ;}void  solve () {    int op , l , r , v ;    scanf ( "%d%d%s" , &n , &q , s + 1 ) ;    build ( root ) ;    while ( q -- ) {        scanf ( "%d" , &op ) ;        if ( op == 1 ) {            scanf ( "%d" , &v ) ;            update ( v , root ) ;        } else {            scanf ( "%d%d%d" , &l , &r , &v ) ;            Lnum = Rnum = 0 ;            query ( l , r , root ) ;            if ( Rnum + Lnum < v ) {                printf ( "-1\n" ) ;                continue ;            }            int x ;            if ( v <= Rnum ) {                Lnum = Rnum = 0 ;                x = Lsearch ( l , r , v , root ) ;            } else {                v = Lnum + Rnum - v + 1 ;                Lnum = Rnum = 0 ;                x = Rsearch ( l , r , v , root ) ;            }            printf ( "%d\n" , x ) ;        }    }}int main () {    int T ;    scanf ( "%d" , &T ) ;    for ( int i = 1 ; i <= T ; ++ i ) {        solve () ;    }    return 0 ;}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2025 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.001001(s) query 1, Server time : 2025-02-18 18:24:36, Gzip enabled