답안 #738214

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
738214 2023-05-08T09:18:44 Z onebit1024 비밀 (JOI14_secret) C++17
100 / 100
439 ms 12288 KB
#include "secret.h"
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>>dp,comp;
void recur(int l, int r,vector<int>&a){
  if(l >= r)return;
  int m = (l+r)/2;
  for(int i = m-1;i>=l;--i)dp[i][m] = Secret(a[i],dp[i+1][m]),comp[i][m] =1;
  for(int i = m+2;i<=r;++i)dp[m+1][i] = Secret(dp[m+1][i-1],a[i]),comp[m+1][i] = 1;
  recur(l,m-1,a);
  recur(m+1,r,a);
}
void Init(int N, int A[]) {
  dp = vector<vector<int>>(N, vector<int>(N,0));
  comp = vector<vector<int>>(N, vector<int>(N,0));

  vector<int>a;
  for(int i = 0;i<N;++i)dp[i][i] = A[i],a.push_back(A[i]),comp[i][i] = 1;
  recur(0,N-1,a);
}

int Query(int L, int R) {
  for(int i = L;i<R;++i){
    if(comp[L][i] && comp[i+1][R]){
      return Secret(dp[L][i],dp[i+1][R]);
    }
  }
  return dp[L][R];
}
# 결과 실행 시간 메모리 Grader output
1 Correct 125 ms 4404 KB Output is correct - number of calls to Secret by Init = 3331, maximum number of calls to Secret by Query = 1
2 Correct 122 ms 4356 KB Output is correct - number of calls to Secret by Init = 3339, maximum number of calls to Secret by Query = 1
3 Correct 124 ms 4392 KB Output is correct - number of calls to Secret by Init = 3347, maximum number of calls to Secret by Query = 1
4 Correct 422 ms 12188 KB Output is correct - number of calls to Secret by Init = 7467, maximum number of calls to Secret by Query = 1
5 Correct 439 ms 12184 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1
6 Correct 428 ms 12236 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1
7 Correct 437 ms 12096 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1
8 Correct 432 ms 12064 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1
9 Correct 438 ms 12108 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1
10 Correct 430 ms 12288 KB Output is correct - number of calls to Secret by Init = 7476, maximum number of calls to Secret by Query = 1