Submission #109949

#TimeUsernameProblemLanguageResultExecution timeMemory
109949DodgeBallManWall (IOI14_wall)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "wall.h" using namespace std; const int N = 2e6 + 10; const int inf = 2e9; int lo[N<<1], hi[N<<1]; void push( int now, int l, int r ) { if( l == r ) ret[l] = min( hi[now], max( low[now], ret[l] ) ); else { hi[now<<1] = max( f, min( hi[now], t ) ), lo[now<<1] = min( t, max( lo[now], f ) ); hi[now<<1|1] = max( f, min( hi[now], t ) ), lo[now<<1|1] = min( t, max( lo[now], f ) ); } lo[now] = 0, hi[now] = inf; return ; } void update( int ll, int rr, int f, int t, int l = 1, int r = n, int now = 1 ) { push( now, f, t ); if( l > rr || r < ll && l > r ) return ; if( l >= ll && r <= rr ) { hi[now] = max( f, min( hi[now], t ) ), lo[now] = min( t, max( lo[now], f ) ); return ; } int mid = ( l + r ) >> 1; update( ll, rr, f, t, l, mid, now << 1 ), update( ll, rr, f, t, mid + 1, r, now << 1 | 1 ); return ; } void computeans( int l = 1, int r = n, int now = 1 ) { push( now, l, r ); if( l == r ) return ; int mid = ( l + r ) >> 1; computeans( l, mid, now << 1 ), computeans( mid + 1, r, now << 1 | 1 ); return ; } void buildWall( int N, int k, int op[], int left[], int right[], int height[], int finalheight[] ) { fill( hi, hi + 2*N, inf ); for( int i = 0 ; i < k ; i++ ) { if( op[i] == 1 ) update( left[i] + 1, right[i] + 1, height[i], inf ); else update( left[i] + 1, right[i] + 1, 0, height[i] ); } computeans(); for( int i = 1 ; i <= n ; i++ ) finalheight[i-1] = ret[i]; return ; }

Compilation message (stderr)

wall.cpp: In function 'void push(int, int, int)':
wall.cpp:11:18: error: 'ret' was not declared in this scope
     if( l == r ) ret[l] = min( hi[now], max( low[now], ret[l] ) );
                  ^~~
wall.cpp:11:18: note: suggested alternative: 'getw'
     if( l == r ) ret[l] = min( hi[now], max( low[now], ret[l] ) );
                  ^~~
                  getw
wall.cpp:11:46: error: 'low' was not declared in this scope
     if( l == r ) ret[l] = min( hi[now], max( low[now], ret[l] ) );
                                              ^~~
wall.cpp:11:46: note: suggested alternative: 'now'
     if( l == r ) ret[l] = min( hi[now], max( low[now], ret[l] ) );
                                              ^~~
                                              now
wall.cpp:13:21: error: 'f' was not declared in this scope
   hi[now<<1] = max( f, min( hi[now], t ) ), lo[now<<1] = min( t, max( lo[now], f ) );
                     ^
wall.cpp:13:38: error: 't' was not declared in this scope
   hi[now<<1] = max( f, min( hi[now], t ) ), lo[now<<1] = min( t, max( lo[now], f ) );
                                      ^
wall.cpp: At global scope:
wall.cpp:20:63: error: 'n' was not declared in this scope
 void update( int ll, int rr, int f, int t, int l = 1, int r = n, int now = 1 ) {
                                                               ^
wall.cpp: In function 'void update(int, int, int, int, int, int, int)':
wall.cpp:22:26: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
     if( l > rr || r < ll && l > r ) return ;
                   ~~~~~~~^~~~~~~~
wall.cpp: At global scope:
wall.cpp:32:37: error: 'n' was not declared in this scope
 void computeans( int l = 1, int r = n, int now = 1 ) {
                                     ^
wall.cpp: In function 'void buildWall(int, int, int*, int*, int*, int*, int*)':
wall.cpp:48:27: error: 'n' was not declared in this scope
     for( int i = 1 ; i <= n ; i++ ) finalheight[i-1] = ret[i];
                           ^
wall.cpp:48:56: error: 'ret' was not declared in this scope
     for( int i = 1 ; i <= n ; i++ ) finalheight[i-1] = ret[i];
                                                        ^~~
wall.cpp:48:56: note: suggested alternative: 'left'
     for( int i = 1 ; i <= n ; i++ ) finalheight[i-1] = ret[i];
                                                        ^~~
                                                        left