#include #define int long long #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() bool st; using namespace std; templateistream&operator>>(istream&I,vector&v){for(auto&i:v)I>>i;return I;} templateostream&operator<<(ostream&O,vector v){for(auto i:v)O<>=1,x=1ll*x*x%P)if(y&1)z=1ll*z*x%P; return z; } void init(){ const int n=2e5; fac[0]=inv[0]=1; for(int i=1;i<=n;++i){ fac[i]=1ll*fac[i-1]*i%P; inv[i]=qp(fac[i],P-2); } } int C(int n,int m){ if(n<0||m<0||n>m)return 0; return 1ll*fac[m]*inv[n]%P*inv[m-n]%P; } void add(int &x,int y){ x+=y; if(x>=P)x-=P; } void solve(){ cin>>n; init(); for(int i=1;i<=n;++i){ cin>>a[i].m>>a[i].k,a[i].id=i; --a[i].m,--a[i].k; } sort(a+1,a+n+1,cmp); int m=0,k=0,sum=1; for(int i=1;i<=n;++i){ int M=a[i].m,K=a[i].k; while(kK)add(sum,P-C(k,m)),k--; while(mM)--m,sum=1ll*I*(sum+C(k,m))%P; ans[a[i].id]=1ll*sum*(qp(2,M+1)-1)%P; } for(int i=1;i<=n;++i)cout<>t; while(t--)AC::solve(); chrono::steady_clock::time_point ED=chrono::steady_clock::now(); cerr<(ED-St).count()<<" \tms\n"<<"Real Time : "<(ED-ST).count()<<" \tms\n"<<" : "<(ED-ST).count()<<" \t?s\n\n"<<"Total Memory : "<