// Problem: No.2616 中央番目の中央値 // Contest: yukicoder // URL: https://yukicoder.me/problems/no/2616 // Memory Limit: 512 MB // Time Limit: 2000 ms #include #define debug(x) cerr<<(#x)<<" "<<(x)< #define rep(i,a,b) for(ll i=(a);i<=(b);++i) #define per(i,a,b) for(ll i=(a);i>=(b);--i) using namespace std; bool Mbe; ll read(){ ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } void write(ll x){ if(x<0)putchar('-'),x=-x; if(x>9)write(x/10); putchar(x%10+'0'); } const ll N=1e6+9,Mod=998244353; ll n,a[N],pre[N],suf[N],bit[N],fac[N],ifac[N],ans; ll pw(ll x,ll p){ ll res=1; while(p){ if(p&1)res=res*x%Mod; x=x*x%Mod; p>>=1; } return res; } void Upd(ll x){ while(x<=n)bit[x]++,x+=(x&(-x)); } ll Query(ll x){ ll res=0; while(x)res+=bit[x],x-=(x&(-x)); return res; } ll C(ll x,ll y){ if(x