当前位置:网站首页>8VC Venture Cup 2017 - Final Round C. Nikita and stack
8VC Venture Cup 2017 - Final Round C. Nikita and stack
2022-06-26 18:23:00 【不吃土司边】
#include<bits/stdc++.h>
using namespace std;
#define X first
#define Y second
#define eps 1e-2
#define gcd __gcd
#define pb push_back
#define PI acos(-1.0)
#define lowbit(x) (x)&(-x)
#define bug printf("!!!!!\n");
#define mem(x,y) memset(x,y,sizeof(x))
typedef long long ll;
typedef long double LD;
typedef pair<int,int> pii;
typedef unsigned long long uLL;
const int maxn = 1e5+2;
const int INF = 1<<30;
const int mod = 1e9+7;
const int N=1e5+10;
struct node{
ll l,r,mx,lazy;
}tr[N<<2];
ll t,n,Q,a[N];
void pushup(ll x){
tr[x].mx=max(tr[x<<1].mx,tr[x<<1|1].mx);
}
void pushdown(ll x){
if(tr[x].lazy){
tr[x<<1].mx+=tr[x].lazy;
tr[x<<1|1].mx+=tr[x].lazy;
tr[x<<1].lazy+=tr[x].lazy;
tr[x<<1|1].lazy+=tr[x].lazy;
tr[x].lazy=0;
}
}
void build(ll p,ll l,ll r){
tr[p].l=l;tr[p].r=r;
if(l==r) return ;
ll mid=(l+r)>>1;
build(p<<1,l,mid);build(p<<1|1,mid+1,r);
pushup(p);
}
void update(ll p,ll l,ll r,ll val){
// cout<<tr[p].l<<" "<<tr[p].r<<" "<<l<<" "<<r<<endl;
if(tr[p].l>=l&&tr[p].r<=r){
tr[p].lazy+=val;
tr[p].mx+=val;
// if(tr[p].l==1) cout<<tr[p].mx<<" "<<val<<endl;
return ;
}
pushdown(p);
int mid=(tr[p].l+tr[p].r)>>1;
if(mid>=l) update(p<<1,l,r,val);
if(mid+1<=r) update(p<<1|1,l,r,val);
pushup(p);
}
ll query(int p){
if(tr[p].l==tr[p].r){
if(tr[p].mx<=0) return -1;
else return a[tr[p].l];
}
ll mid=(tr[p].l+tr[p].r)>>1;
pushdown(p);
int res=0;
if(tr[p<<1|1].mx>0) res=query(p<<1|1);
else res=query(p<<1);
pushup(p);
return res;
}
void solve(){
int m;scanf("%d",&m);
build(1,1,N);
// cout<<tr[3].l<<" "<<tr[3].r<<endl;
while(m--){
int op,x,y;scanf("%d%d",&x,&op);
if(op==1){
scanf("%d",&y);
update(1,1,x,1);a[x]=y;
}else{
update(1,1,x,-1);
}
// cout<<tr[1].mx<<endl;
printf("%lld\n",query(1));
}
return;
}
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
// ios::sync_with_stdio(false);
int t = 1;
//scanf("%d",&t);
while(t--){
// printf("Case %d: ",cas++);
solve();
}
return 0;
}
边栏推荐
- JVM入个门(1)
- gdb安装
- MySQL的MVCC机制详解
- GDB installation
- 最小生成树、最短路径、拓扑排序、关键路径
- How about opening a flush account? Is it safe? How to open a stock trading account
- 自己创建一个时间拦截器
- 50 lines of code to crawl TOP500 books and import TXT documents
- vutils. make_ A little experience of grid () in relation to black and white images
- RSA concept explanation and tool recommendation - LMN
猜你喜欢
随机推荐
Usage and difference between ros:: spinonce() and ros:: spin()
Interview key points that must be mastered index and affairs (with B-tree and b+ tree)
How about opening an account at Guojin securities? Is it safe to open an account?
爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中
Dos et détails de la méthode d'attaque
ROS查询话题具体内容常用指令
JS common regular expressions
Padding percentage operation
LeetCode 238 除自身以外数组的乘积
为什么我不推荐去SAP培训机构参加培训?
DVD digital universal disc
Tag dynamic programming - preliminary knowledge for question brushing -2 0-1 knapsack theory foundation and two-dimensional array solution template
DAPP丨LP单双币流动性质押挖矿系统开发原理分析及源码
Numpy's Matplotlib
Temporarily turn off MySQL cache
17.13 supplementary knowledge, thread pool discussion, quantity discussion and summary
ROS的发布消息Publishers和订阅消息Subscribers
Crawl Douban to read top250 and import it into SqList database (or excel table)
How about opening a flush account? Is it safe? How to open a stock trading account
System table SQLite of SQLite database_ master









