代码求调
查看原帖
代码求调
552688
clx201022楼主2023/1/13 11:06
#include<stdio.h>
long long read()
{
    long long x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            f=-f;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
void write(long long x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>9)
    {
        write(x/10);
    }
    putchar(x%10+'0');
    return;
}//快读快出
long long fac[1000010]={1,1};
int a[1000010];
int main()
{
    long long n=read();
    fac[0]=1;
    for(int i=1;i<=n;i++)
	    fac[i]=(fac[i-1]*i)%998244353;//阶乘
    for(int i=1;i<=n;i++)
        a[i]=read();
    long long ans=0;
    for(int i=1;i<=n;i++)
    {
        long long sum=0;
        for(int j=i;j<=n;j++)
        {
            if(a[i]<a[j])//统计
                sum++;
        }
        ans=(sum*fac[n-i]+ans)%998244353;
    }
    write((ans+1)%998244353);
    return 0;
}

样例就错了

input 3 2 1 3

output 3

求调QAQ

2023/1/13 11:06
加载中...