WA on test 4? 求找错
查看原帖
WA on test 4? 求找错
1135901
Programming_Konjac楼主2025/7/31 19:44
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int tong[2][300005];
const ll mod=998244353;
ll fac[300005];
void init(int n){
    fac[0]=1;
    for(int i=1; i<=n; i++) fac[i]=fac[i-1]*i%mod;
}
signed main(){
    init(300000);
    int n;
    cin>>n;
    pair<int,int> a[300005];
    for(int i=1; i<=n; i++){
        cin>>a[i].first>>a[i].second;
        tong[0][a[i].first]++;
        tong[1][a[i].second]++;
    }
    ll ans1=fac[n];
    ll ans2=1;
    for(int i=1; i<=n; i++){
        if(tong[0][i]) (ans2=ans2*fac[tong[0][i]])%=mod;
    }
    ll ans3=1;
    for(int i=1; i<=n; i++){
        if(tong[1][i]) (ans3=ans3*fac[tong[1][i]])%=mod;
    }
    ll ans4=1;
    sort(a+1,a+n+1);
    int flag=1;
    for(int i=1; i<=n; i++){
        if(a[i].first<a[i-1].first||a[i].second<a[i-1].second){
            flag=0;
            break;
        }
        if(tong[1][i]&&tong[0][i]) (ans4=ans4*fac[min(tong[0][i],tong[1][i])])%=mod;
    }
    if(!flag) ans4=0;
    cout<<(((((ans1-ans2)%mod+mod)%mod-ans3+mod)%mod+mod)%mod+ans4)%mod;
    return 0;
}
2025/7/31 19:44
加载中...