Submission #1318016

#TimeUsernameProblemLanguageResultExecution timeMemory
131801624ta_tdanhSecret (JOI14_secret)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#define endl '\n'
#define fi first
#define se second
#define eb emplace_back
#define pb push_back
#define ce cout << endl
#define ALL(A) A.begin(), A.end()
#define FOR(i, l, r) for (int i = l; i <= r; i++)
#define FOR2(i, l, r) for (int i = l; i >= r; i--)
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
using pii = pair<int, int>;
using str = string;
using ull = unsigned long long;
using ld = long double; 
const int INF = 1e9;
const int MAXN = 1000;
const int LOGN = ceil(log2(N));
const int heavy = 500;
const int MOD = 1e9 + 7;
int dx[] = {0, 1, 0, -1}; // east, south, west, north
int dy[] = {1, 0, -1, 0};


int n , q , cnt = 0;
int X[MAXN + 1];
int dat[LOGN][MAXN + 1];
int mask[MAXN];
void divi(int l , int r , int lev){
    if(l == r) return;
    
    int m = l + r >> 1;
    dat[lev][m] = X[m];
    FOR2(i,m - 1 , l) {
        dat[lev][i] = query(dat[lev][i + 1] , X[i]);
    }
    dat[lev][m + 1] = X[m + 1];
    FOR(i, m + 2 ,r) {
        dat[lev][i] = query(dat[lev][i - 1] , X[i]);
    }
    FOR(i,m + 1 , r) mask[i] ^= (1 << lev);
    
    divi(l , m , lev + 1);
    divi(m + 1 , r , lev + 1);
}
void Init(int N, int A[]){
    FOR(i,0,N-1) X[i] = A[i];
    divi(0 , N - 1,  0);
}
int Query(int L, int R){
    if(l == r) return X[l];
    int lev = __builtin_ctz(mask[L] ^ mask[R]);
    return Secret(dat[lev][L] , dat[lev][R]);
}
// int main() {
//     ios::sync_with_stdio(0);
//     cin.tie(0); cout.tie(0);

//     int t = 1;
//     while (t--) solve();
//     return 0;
// }

Compilation message (stderr)

secret.cpp:20:28: error: 'N' was not declared in this scope
   20 | const int LOGN = ceil(log2(N));
      |                            ^
secret.cpp:29:9: error: size of array 'dat' is not an integral constant-expression
   29 | int dat[LOGN][MAXN + 1];
      |         ^~~~
secret.cpp: In function 'void divi(int, int, int)':
secret.cpp:37:23: error: 'query' was not declared in this scope
   37 |         dat[lev][i] = query(dat[lev][i + 1] , X[i]);
      |                       ^~~~~
secret.cpp:41:23: error: 'query' was not declared in this scope
   41 |         dat[lev][i] = query(dat[lev][i - 1] , X[i]);
      |                       ^~~~~
secret.cpp: In function 'int Query(int, int)':
secret.cpp:53:8: error: 'l' was not declared in this scope
   53 |     if(l == r) return X[l];
      |        ^
secret.cpp:53:13: error: 'r' was not declared in this scope
   53 |     if(l == r) return X[l];
      |             ^
secret.cpp:55:12: error: 'Secret' was not declared in this scope
   55 |     return Secret(dat[lev][L] , dat[lev][R]);
      |            ^~~~~~