#include #define int long long using namespace std; int Q; struct node{ int l,r,id; }q[200005]; int jc[200005]; int inv[200005]; int jc_2[200005]; const int mod=998244353; int ksm(int x,int y){ int ans=1; for(y;y;y>>=1,x=x*x%mod)if(y&1)ans=ans*x%mod; return ans; } int kuailen; bool cmp(node tle,node mle){ if(tle.l/kuailen==mle.l/kuailen){ return ((tle.l/kuailen)&1)?tle.rmle.r; } return tle.l>Q; for(int i=1;i<=Q;i++){ cin>>q[i].r>>q[i].l; q[i].l--; q[i].r--; q[i].id=i; } kuailen=sqrt(Q); sort(q+1,q+1+Q,cmp); jc[0]=jc_2[0]=inv[0]=1; for(int i=1;i<=200005;i++){ jc[i]=jc[i-1]*i%mod; jc_2[i]=jc_2[i-1]*2%mod; inv[i]=ksm(jc[i],mod-2); } // cout << C(8, 0) << '\n'; inv2=ksm(2,mod-2); for(int i=1;i<=Q;i++){ // cout<< while(rq[i].r) delr(); while(lq[i].l) dell(); // cout << tans << ' ' << l << ' ' << r << '\n'; // cout<