답안 #735747

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
735747 2023-05-04T14:37:54 Z sandry24 비밀 (JOI14_secret) C++17
30 / 100
549 ms 4412 KB
#include <bits/stdc++.h>
#include "secret.h"
using namespace std;
 
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define pb push_back
#define mp make_pair
#define f first
#define s second

int n;
const int maxn = 1005;
int st[4*maxn];

int secret(int x, int y){
    return (x + 2 * (y / 2));
}

int combine(int x, int y){
    if(x == -1)
        return y;
    else if(y == -1)
        return x;
    else
        return Secret(x, y);
}

void build(int v, int tl, int tr, int A[]){
    if(tl == tr){
        st[v] = A[tl];
    } else {
        int tm = (tl+tr)/2;
        build(v*2, tl, tm, A);
        build(v*2+1, tm+1, tr, A);
        st[v] = Secret(st[v*2], st[v*2+1]);
    }
}

int range_query(int v, int tl, int tr, int l, int r){
    if(l > r)
        return -1;
    if(l == tl && r == tr)
        return st[v];
    int tm = (tl+tr)/2;
    return combine(range_query(v*2, tl, tm, l, min(tm, r)), 
        range_query(2*v+1, tm+1, tr, max(tm+1, l), r));
}

int Query(int L, int R){
    return range_query(1, 0, n-1, L, R);
}

void Init(int N, int A[]){
    n = N;
    build(1, 0, n-1, A);
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 187 ms 2368 KB Output is partially correct - number of calls to Secret by Init = 510, maximum number of calls to Secret by Query = 13
2 Partially correct 172 ms 2308 KB Output is partially correct - number of calls to Secret by Init = 511, maximum number of calls to Secret by Query = 14
3 Partially correct 173 ms 2464 KB Output is partially correct - number of calls to Secret by Init = 512, maximum number of calls to Secret by Query = 15
4 Partially correct 494 ms 4280 KB Output is partially correct - number of calls to Secret by Init = 998, maximum number of calls to Secret by Query = 15
5 Partially correct 549 ms 4236 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 15
6 Partially correct 441 ms 4212 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 4
7 Partially correct 513 ms 4412 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 16
8 Partially correct 514 ms 4304 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 16
9 Partially correct 511 ms 4280 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 16
10 Partially correct 513 ms 4280 KB Output is partially correct - number of calls to Secret by Init = 999, maximum number of calls to Secret by Query = 16