提交时间:2022-04-09 14:23:27

运行 ID: 48141

#include<bits/stdc++.h> using namespace std; const int maxn=200010; const int N=maxn<<2; const int mod=1e9+7; int data[N],n,m,T; void Modify(int i,int l,int r,int x){ if(x==1) return ; if(l==r){ data[i]++; return ; } int mid=l+r>>1; if(x<=mid) Modify(i<<1,l,mid,x); if(x>mid) Modify(i<<1|1,mid+1,r,x); data[i]=data[i<<1]*1ll*data[i<<1|1]%mod; } int main(){ scanf("%d%d%d",&n,&m,&T); int x,y; for(int i=1;i<=m;i++){ scanf("%d%d",&x,&y); Modify(1,2,n,y); } printf("%d\n",data[1]); for(int i=1;i<=T;i++){ scanf("%d%d",&x,&y); Modify(1,2,n,y); printf("%d\n",data[1]); } return 0; }