提交时间:2024-01-04 12:57:47

运行 ID: 119116

#include<bits/stdc++.h> using namespace std; const int maxn=200010,N=maxn<<2,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; }