# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
619971 | AbdelmagedNour | 운세 보기 2 (JOI14_fortune_telling2) | C++17 | 532 ms | 31072 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
struct SegTreeMax{
int tree[1<<21];
int sz;
void init(int n){
sz=1;
while(sz<n)sz*=2;
memset(tree,-1,2*sz*sizeof(tree[0]));
}
void update(int l,int r,int p,int idx,int val){
if(l==r){
tree[p]=val;
return;
}
int md=(l+r)>>1;
if(md>=idx)update(l,md,p*2+1,idx,val);
else update(md+1,r,p*2+2,idx,val);
tree[p]=max(tree[p*2+1],tree[p*2+2]);
}
void update(int idx,int val){
update(0,sz-1,0,idx,val);
}
int query(int l,int r,int p,int l_q,int r_q){
if(l>r_q||r<l_q)return -1;
if(l>=l_q&&r<=r_q)return tree[p];
int md=(l+r)>>1;
int ch1=query(l,md,p*2+1,l_q,r_q);
int ch2=query(md+1,r,p*2+2,l_q,r_q);
return max(ch1,ch2);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |