| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1332827 | Newtonabc | Editor (BOI15_edi) | C++20 | 157 ms | 28216 KiB |
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int a[N],d[N][20],l[N];
int fd(int x,int lv){
//find maximum active x level<=lv
if(l[x]<=lv) return x;
int now=x;
for(int i=19;i>=0;i--) if(l[d[x][i]]>lv) x=d[x][i];
return d[x][0];
}
int main(){
int n; cin>>n;
for(int i=0;i<20;i++) d[1][i]=0;
for(int i=1;i<=n;i++) cin>>a[i],l[i]=max(0,-a[i]);
for(int i=1;i<=n;i++){
if(l[i]){
//undo
int del=fd(i-1,l[i]-1);
int lk=fd(del-1,l[i]-1);
d[i][0]=lk;
for(int j=1;j<=19;j++) d[i][j]=d[d[i][j-1]][j-1];
}
cout<<a[fd(i,0)] <<"\n";
}
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
