Submission #1310563

#TimeUsernameProblemLanguageResultExecution timeMemory
1310563em4ma2Secret (JOI14_secret)C++20
Compilation error
0 ms0 KiB
#include "bits/stdc++.h"
#include "secret.h"

//#include "secret.h"

// #include <stdio.h>
// #include <stdlib.h>

// #define MAX_N                  1000
// #define MAX_Q                 10000
// #define MAX_VALUE        1000000000

// static int N;
// static int A[MAX_N];
// static int Q;
// static int L[MAX_Q];
// static int R[MAX_Q];

// static int secret_count;

// int Secret(int X, int Y) {
//   ++secret_count;
//   if (!(0 <= X && X <= MAX_VALUE)) {
//     fprintf(stderr, "Wrong Answer [1]\n");
//     exit(0);
//   }
//   if (!(0 <= Y && Y <= MAX_VALUE)) {
//     fprintf(stderr, "Wrong Answer [1]\n");
//     exit(0);
//   }
//   return (X + 2 * (Y / 2) < MAX_VALUE) ? (X + 2 * (Y / 2)) : MAX_VALUE;
// }


using namespace std;

//#define int long long
#define ll long long
#define pb push_back

const int mxsz=1026;

int dst[10][mxsz];
vector<int>A;

int Query(int l,int r){
    int L=-1;
    if (l+1==r){
      return A[l];
    }
    int x=__builtin_clz((l^r))-(32-10);
    return Secret(dst[x][l],dst[x][r+1]);
}

void rec(int r,vector<int>a&,int l=0,int lv=0){
    if (l+1==r){
        dst[lv][l]=a[l];
        return;
    }
    int mid=(l+r)/2;
    dst[lv][mid-1]=a[mid-1];
    for (int i=mid-2;i>=l;i--){
        dst[lv][i]=Secret(a[i],dst[lv][i+1]);
    }
    dst[lv][mid]=a[mid];
    for (int i=mid+1;i<r;i++){
        dst[lv][i]=Secret(dst[lv][i-1],a[i]);
    }
    rec(mid,a,l,lv+1);
    rec(r,a,mid,lv+1);
}

void Init(int n,int a[]){
    int cnt=2;
    int x=(log2(n)+1);
    int N=1;
    while (x--){
        N*=2;
    }
    for (int i=0;i<n;i++){
        A.pb(a[i]);
    }
    for (int i=n;i<N;i++){
        A.pb(0);
    }
    n=N;
    rec(n,A);
    // for (int i=0;i<11;i++){
    //     int k=i+1;
    //     int b=0;
    //     int cnt2=0;
    //     while (k--){
    //         int mx=n/cnt;
    //         if (!b){
    //             for (int j=cnt2+mx-1;j>=cnt2;j--){
    //                 if (j==cnt2+mx-1)dst[i][j]=A[j];
    //                 else dst[i][j]=Secret(dst[i][j-1],A[j]);
    //             }
    //             cnt2+=mx;
    //             b^=1;
    //         }else{
    //             for (int j=cnt2+1;j<=cnt2+mx;j++){
    //                 if (j==cnt2+1)dst[i][j]=A[j];
    //                 else dst[i][j]=Secret(dst[i][j-1],A[j]);
    //             }
    //             cnt2+=mx;
    //             b^=1;
    //         }
    //     }
    //     cnt*=2;
    // }
}


// signed main(){
//     ios::sync_with_stdio(0);
//     cin.tie(0);
//     cout.tie(0);

//     int n;
//     cin>>n;
//     int a[n];
//     for (int i=0;i<n;i++){
//         cin>>a[i];
//     }
//     Init(n,a);
//     int q;
//     cin>>q;
//     while (q--){
//         int l,r;
//         cin>>l>>r;
//         cout<<Query(l,r)<<endl;
//     }
//     return 0;
// }

Compilation message (stderr)

secret.cpp:55:28: error: expected ',' or '...' before '&' token
   55 | void rec(int r,vector<int>a&,int l=0,int lv=0){
      |                            ^
secret.cpp: In function 'void rec(int, std::vector<int>)':
secret.cpp:56:9: error: 'l' was not declared in this scope
   56 |     if (l+1==r){
      |         ^
secret.cpp:57:13: error: 'lv' was not declared in this scope; did you mean 'll'?
   57 |         dst[lv][l]=a[l];
      |             ^~
      |             ll
secret.cpp:60:14: error: 'l' was not declared in this scope
   60 |     int mid=(l+r)/2;
      |              ^
secret.cpp:61:9: error: 'lv' was not declared in this scope; did you mean 'll'?
   61 |     dst[lv][mid-1]=a[mid-1];
      |         ^~
      |         ll