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_20614106_2052.cpp:4:27: error: stray '#' in program
     using namespace std ; #define REP( i , n ) for ( int i = 0 ; i < n ; ++ i )#define REV( i , n ) for ( int i = n - 1 ; i >= 0 ; -- i )#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define FOV( i , a , b ) for ( int i = a ; i >= b ; -- i )#define REPF( i , a , b ) for ( int i = a ; i < b ; ++ i )#define REPV( i , a , b ) for ( int i = a - 1 ; i >= b ; -- i ) #define CLR( a , x ) memset ( a , x , sizeof a )#define mid() ( ( l + r ) >> 1 ) typedef long long LL ; const int MAXN = 100005 ;const int MAXE = 200005 ; struct Edge {    int h , c , n ;    Edge () {}    Edge ( int h , int c , int n ) :        h ( h ) , c ( c ) , n ( n ) {}} ; struct Seg_Tree {    int Ls , Rs ;    int c ;    LL val ;} ; Edge E[MAXE] ;int H[MAXN] , cntE ; Seg_Tree T[MAXN * 38] ;int idx ; int a[MAXN] , cnt ; int Root[MAXN] ;int N , M , X , P ;LL Pre ; int unique ( int a[] , int n ) {    int cnt = 1 ;    sort ( a + 1 , a + n + 1 ) ;    FOR ( i , 2 , n )        if ( a[i] != a[cnt] )            a[++ cnt] = a[i] ;    return cnt ;} int lower_bound ( int key ) {    int l = 1 , r = cnt + 1 ;    while ( l < r ) {        int m = mid () ;        if ( a[m] >= key )            r = m ;        else            l = m + 1 ;    }    return l ;} int newnode () {    return ++ idx ;} void build ( int &o , int l , int r ) {    o = newnode () ;    T[o].c = 0 ;    T[o].val = 0 ;    if ( l == r )        return ;    int m = mid () ;    build ( T[o].Ls , l , m ) ;    build ( T[o].Rs , m + 1 , r ) ;} int insert ( int old , int pos , int val , int c ) {    int root = newnode () ;    int now = root ;    int l = 1 , r = cnt ;    T[now].c = T[old].c + c ;    T[now].val = T[old].val + val ;    while ( l < r ) {        int m = mid () ;        if ( pos <= m ) {            T[now].Ls = newnode () ;            T[now].Rs = T[old].Rs ;            now = T[now].Ls ;            old = T[old].Ls ;            r = m ;        }        else {            T[now].Ls = T[old].Ls ;            T[now].Rs = newnode () ;            now = T[now].Rs ;            old = T[old].Rs ;            l = m + 1 ;        }        T[now].c = T[old].c + c ;        T[now].val = T[old].val + val ;    }    return root ;} LL query ( int now , int kth ) {    LL ans = 0 ;    int l = 1 , r = cnt ;    while ( l < r ) {        int m = mid () ;        if ( kth <= T[T[now].Ls].c ) {            now = T[now].Ls ;            r = m ;        }        else {            ans += T[T[now].Ls].val ;            kth -= T[T[now].Ls].c ;            now = T[now].Rs ;            l = m + 1 ;        }    }    if ( T[now].c && kth )        ans += T[now].val / T[now].c * kth ;    return ans ;} void init () {    cntE = 0 ;    CLR ( H , -1 ) ;} void addedge ( int x , int h , int c ) {    E[cntE] = Edge ( h , c , H[x] ) ;    H[x] = cntE ++ ;} void solve () {    int l , r , h ;    init () ;    idx = 0 ;    cnt = 0 ;    Pre = 1 ;    FOR ( i , 1 , N ) {        scanf ( "%d%d%d" , &l , &r , &h ) ;        addedge ( l , h , 1 ) ;        addedge ( r + 1 , h , -1 ) ;        a[++ cnt] = h ;    }    cnt = unique ( a , cnt ) ;    build ( Root[0] , 1 , cnt ) ;    FOR ( x , 1 , X ) {        if ( ~H[x] ) {            int flag = 0 ;            for ( int i = H[x] ; ~i ; i = E[i].n ) {                h = E[i].h ;                if ( !flag ) {                    Root[x] = insert ( Root[x - 1] , lower_bound ( h ) , E[i].c * h , E[i].c ) ;                    flag = 1 ;                }                else                    Root[x] = insert ( Root[x] , lower_bound ( h ) , E[i].c * h , E[i].c ) ;            }        }        else {            Root[x] = newnode () ;            T[Root[x]] = T[Root[x - 1]] ;        }    }    int pos , a , b , c ;    REP ( i , M ) {        scanf ( "%d%d%d%d" , &pos , &a , &b , &c ) ;        int kth = ( a * Pre + b ) % c ;        LL score = query ( Root[pos] , kth ) ;        if ( Pre > P )            score <<= 1 ;        printf ( "%I64d\n" , score ) ;        Pre = score ;    }}     int main () {    while ( ~scanf ( "%d%d%d%d" , &N , &M , &X , &P ) )        solve () ;    return 0 ;}
                           ^
0_0_20614106_2052.cpp:4:80: error: stray '#' in program
     using namespace std ; #define REP( i , n ) for ( int i = 0 ; i < n ; ++ i )#define REV( i , n ) for ( int i = n - 1 ; i >= 0 ; -- i )#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define FOV( i , a , b ) for ( int i = a ; i >= b ; -- i )#define REPF( i , a , b ) for ( int i = a ; i < b ; ++ i )#define REPV( i , a , b ) for ( int i = a - 1 ; i >= b ; -- i ) #define CLR( a , x ) memset ( a , x , sizeof a )#define mid() ( ( l + r ) >> 1 ) typedef long long LL ; const int MAXN = 100005 ;const int MAXE = 200005 ; struct Edge {    int h , c , n ;    Edge () {}    Edge ( int h , int c , int n ) :        h ( h ) , c ( c ) , n ( n ) {}} ; struct Seg_Tree {    int Ls , Rs ;    int c ;    LL val ;} ; Edge E[MAXE] ;int H[MAXN] , cntE ; Seg_Tree T[MAXN * 38] ;int idx ; int a[MAXN] , cnt ; int Root[MAXN] ;int N , M , X , P ;LL Pre ; int unique ( int a[] , int n ) {    int cnt = 1 ;    sort ( a + 1 , a + n + 1 ) ;    FOR ( i , 2 , n )        if ( a[i] != a[cnt] )            a[++ cnt] = a[i] ;    return cnt ;} int lower_bound ( int key ) {    int l = 1 , r = cnt + 1 ;    while ( l < r ) {        int m = mid () ;        if ( a[m] >= key )            r = m ;        else            l = m + 1 ;    }    return l ;} int newnode () {    return ++ idx ;} void build ( int &o , int l , int r ) {    o = newnode () ;    T[o].c = 0 ;    T[o].val = 0 ;    if ( l == r )        return ;    int m = mid () ;    build ( T[o].Ls , l , m ) ;    build ( T[o].Rs , m + 1 , r ) ;} int insert ( int old , int pos , int val , int c ) {    int root = newnode () ;    int now = root ;    int l = 1 , r = cnt ;    T[now].c = T[old].c + c ;    T[now].val = T[old].val + val ;    while ( l < r ) {        int m = mid () ;        if ( pos <= m ) {            T[now].Ls = newnode () ;            T[now].Rs = T[old].Rs ;            now = T[now].Ls ;            old = T[old].Ls ;            r = m ;        }        else {            T[now].Ls = T[old].Ls ;            T[now].Rs = newnode () ;            now = T[now].Rs ;            old = T[old].Rs ;            l = m + 1 ;        }        T[now].c = T[old].c + c ;        T[now].val = T[old].val + val ;    }    return root ;} LL query ( int now , int kth ) {    LL ans = 0 ;    int l = 1 , r = cnt ;    while ( l < r ) {        int m = mid () ;        if ( kth <= T[T[now].Ls].c ) {            now = T[now].Ls ;            r = m ;        }        else {            ans += T[T[now].Ls].val ;            kth -= T[T[now].Ls].c ;            now = T[now].Rs ;            l = m + 1 ;        }    }    if ( T[now].c && kth )        ans += T[now].val / T[now].c * kth ;    return ans ;} void init () {    cntE = 0 ;    CLR ( H , -1 ) ;} void addedge ( int x , int h , int c ) {    E[cntE] = Edge ( h , c , H[x] ) ;    H[x] = cntE ++ ;} void solve () {    int l , r , h ;    init () ;    idx = 0 ;    cnt = 0 ;    Pre = 1 ;    FOR ( i , 1 , N ) {        scanf ( "%d%d%d" , &l , &r , &h ) ;        addedge ( l , h , 1 ) ;        addedge ( r + 1 , h , -1 ) ;        a[++ cnt] = h ;    }    cnt = unique ( a , cnt ) ;    build ( Root[0] , 1 , cnt ) ;    FOR ( x , 1 , X ) {        if ( ~H[x] ) {            int flag = 0 ;            for ( int i = H[x] ; ~i ; i = E[i].n ) {                h = E[i].h ;                if ( !flag ) {                    Root[x] = insert ( Root[x - 1] , lower_bound ( h ) , E[i].c * h , E[i].c ) ;                    flag = 1 ;                }                else                    Root[x] = insert ( Root[x] , lower_bound ( h ) , E[i].c * h , E[i].c ) ;            }        }        else {            Root[x] = newnode () ;            T[Root[x]] = T[Root[x - 1]] ;        }    }    int pos , a , b , c ;    REP ( i , M ) {        scanf ( "%d%d%d%d" , &pos , &a , &b , &c ) ;        int kth = ( a * Pre + b ) % c ;        LL score = query ( Root[pos] , kth ) ;        if ( Pre > P )            score <<= 1 ;        printf ( "%I64d\n" , score ) ;        Pre = score ;    }}     int main () {    while ( ~scanf ( "%d%d%d%d" , &N , &M , &X , &P ) )        solve () ;    return 0 ;}
                                                                                ^
0_0_20614106_2052.cpp:4:138: error: stray '#' in program
     using namespace std ; #define REP( i , n ) for ( int i = 0 ; i < n ; ++ i )#define REV( i , n ) for ( int i = n - 1 ; i >= 0 ; -- i )#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define FOV( i , a , b ) for ( int i = a ; i >= b ; -- i )#define REPF( i , a , b ) for ( int i = a ; i < b ; ++ i )#define REPV( i , a , b ) for ( int i = a - 1 ; i >= b ; -- i ) #define CLR( a , x ) memset ( a , x , sizeof a )#define mid() ( ( l + r ) >> 1 ) typedef long long LL ; const int MAXN = 100005 ;const int MAXE = 200005 ; struct Edge {    int h , c , n ;    Edge () {}    Edge ( int h , int c , int n ) :        h ( h ) , c ( c ) , n ( n ) {}} ; struct Seg_Tree {    int Ls , Rs ;    int c ;    LL val ;} ; Edge E[MAXE] ;int H[MAXN] , cntE ; Seg_Tree T[MAXN * 38] ;int idx ; int a[MAXN] , cnt ; int Root[MAXN] ;int N , M , X , P ;LL Pre ; int unique ( int a[] , int n ) {    int cnt = 1 ;    sort ( a + 1 , a + n + 1 ) ;    FOR ( i , 2 , n )        if ( a[i] != a[cnt] )            a[++ cnt] = a[i] ;    return cnt ;} int lower_bound ( int key ) {    int l = 1 , r = cnt + 1 ;    while ( l < r ) {        int m = mid () ;        if ( a[m] >= key )            r = m ;        else            l = m + 1 ;    }    return l ;} int newnode () {    return ++ idx ;} void build ( int &o , int l , int r ) {    o = newnode () ;    T[o].c = 0 ;    T[o].val = 0 ;    if ( l == r )        return ;    int m = mid () ;    build ( T[o].Ls , l , m ) ;    build ( T[o].Rs , m + 1 , r ) ;} int insert ( int old , int pos , int val , int c ) {    int root = newnode () ;    int now = root ;    int l = 1 , r = cnt ;    T[now].c = T[old].c + c ;    T[now].val = T[old].val + val ;    while ( l < r ) {        int m = mid () ;        if ( pos <= m ) {            T[now].Ls = newnode () ;            T[now].Rs = T[old].Rs ;            now = T[now].Ls ;       


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-09-28 09:30:26, Gzip enabled