Submission #1272004

#TimeUsernameProblemLanguageResultExecution timeMemory
1272004ezzzaySecret (JOI14_secret)C++20
30 / 100
405 ms4424 KiB
#include "secret.h" #include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back vector<int>a; int n; int st[5000]; void build(int node, int L, int R){ if(L==R){ st[node]=a[L]; return; } int mid=(L+R)/2; build(node*2,L,mid); build(node*2+1,mid+1,R); st[node]=Secret(st[node*2],st[node*2+1]); } int find(int node, int L, int R, int l, int r){ if(l<=L and R<=r)return st[node]; if(l>R or L>r)return -1; int mid=(L+R)/2; int x=find(node*2,L,mid,l,r); int y=find(node*2+1,mid+1,R,l,r); if(x==y and y==-1)return -1; else if(x==-1)return y; else if(y==-1)return x; else return Secret(x,y); } void Init(int N, int A[]) { n=N; a.clear(); a.pb(0); for(int i=0;i<N;i++)a.push_back(A[i]); build(1,1,n); } int Query(int L, int R) { L++,R++; return find(1,1,n,L,R); }
#Verdict Execution timeMemoryGrader output
Fetching results...