제출 #1207579

#제출 시각아이디문제언어결과실행 시간메모리
1207579ricardsjansons비밀 (JOI14_secret)C++20
0 / 100
337 ms4404 KiB
#include "secret.h" #include <bits/stdc++.h> using namespace std; const int N=1<<10; vector<int>segt(N*2,-1); map<pair<int,int>,int>hintmem; int hint(int x,int y){ if(x>y){ swap(x,y); } if(!hintmem.count({x,y})){ hintmem[{x,y}]=Secret(x,y); } return hintmem[{x,y}]; } void Init(int n, int a[]) { for(int i=0;i<n;i++){ segt[i+N]=a[i]; } } int f(int i){ if(segt[i]>=0){ return segt[i]; } segt[i]=hint(f(i*2),f(i*2+1)); return segt[i]; } int Query(int l, int r) { l+=N; r+=N; vector<int>v; while(l<=r){ if(l%2==1){ v.push_back(f(l++)); } if(r%2==0){ v.push_back(f(r--)); } l/=2; r/=2; } int res=v.back(); v.pop_back(); for(int x:v){ res=hint(res,x); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...