結果
問題 | No.2615 ペアの作り方 |
ユーザー |
![]() |
提出日時 | 2024-01-26 21:35:56 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 56 ms / 2,000 ms |
コード長 | 1,907 bytes |
コンパイル時間 | 2,310 ms |
コンパイル使用メモリ | 202,520 KB |
最終ジャッジ日時 | 2025-02-18 23:02:03 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define rep(i,n) for(int i=0;i<n;i++)#define per(i,n) for(int i=n-1;i>=0;i--)#define rng(i,c,n) for(int i=c;i<n;i++)#define fi first#define se second#define pb push_back#define all(a) a.begin(), a.end()#define sz(a) ((int) a.size())#define vec(...) vector<__VA_ARGS__>#define _3PawRSC ios::sync_with_stdio(0),cin.tie(0)typedef long long ll;using vi=vector<int>;using pii=pair<int,int>;void print(){cout<<'\n';}template<class h,class...t>void print(const h&v,const t&...u){cout<<v<<' ',print(u...);}// snuke's mod inttemplate <ll mod>struct modint{ll x;modint(ll x=0):x((x%mod+mod)%mod){}modint operator-()const{return modint(-x);}modint& operator+=(const modint a){if((x+=a.x)>=mod) x-=mod; return *this;}modint& operator-=(const modint a){if((x+=mod-a.x)>=mod) x-=mod; return *this;}modint& operator*=(const modint a){(x*=a.x)%=mod; return *this;}modint operator+(const modint a)const{modint res(*this); return res+=a;}modint operator-(const modint a)const{modint res(*this); return res-=a;}modint operator*(const modint a)const{modint res(*this); return res*=a;}modint pow(ll n)const{modint res=1,x(*this);while(n){if(n&1)res*=x;x*=x;n>>=1;}return res;}modint inv()const{return pow(mod-2);}};using mint=modint<998244353>;const int _n=3e5;mint fact[_n],invfact[_n];void initfact(){fact[0]=1;rng(i,1,_n){fact[i]=fact[i-1]*mint(i);}invfact[_n-1]=fact[_n-1].inv();per(i,_n-1){invfact[i]=invfact[i+1]*mint(i+1);}}void slv(){int n;cin>>n;vi a(n);rep(i,n){cin>>a[i];}vi b(n);rep(i,n){cin>>b[i];}vec(pii) c;rep(i,n){c.pb({a[i],0});}rep(i,n){c.pb({b[i],1});}sort(c.begin(), c.end());int l=0;rep(i,n){if(c[i].se){l+=1;}}mint ans=fact[l]*fact[n-l];print(ans.x);}signed main(){_3PawRSC;initfact();slv();}