QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#762397#8023. The Journey of Geor Autumnlin1991122WA 1ms7876kbC++14790b2024-11-19 14:53:012024-11-19 14:53:02

Judging History

This is the latest submission verdict.

  • [2024-11-19 14:53:02]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 7876kb
  • [2024-11-19 14:53:01]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
using ui=unsigned int;
using ull=unsigned long long;
const int P=998244353;
const int N=1e7+3;
void add(ui &x,ui y){if((x+=y)>=P)x-=P;}
ui inv[N],f[N],g[N];
int n,K;
int main(){
    int u,v,w,x,y,z;
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n>>K;
    if(K==n){ui ans=1;for(ui i=1;i<=n;++i)ans=(ull)ans*i%P;printf("%u\n",ans);return 0;}
    inv[1]=1;ui ans=0;
    for(int i=2;i<=n;++i)inv[i]=(ull)inv[P%i]*(P-P/i)%P;
    f[0]=inv[n];
    for(int i=1;i<n;++i){
        ui k=f[i-1];
        if(i-K-1>=0)k=(k+P-f[i-K-1])%P;
        k=(ull)k*inv[n-i]%P;
        if(i+K>=n)add(ans,k);
        f[i]=(f[i-1]+k)%P;
    }
    for(ui i=1;i<=n;++i)ans=(ull)ans*i%P;
    printf("%u\n",ans);
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3772kb

input:

1 1

output:

1

result:

ok "1"

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 7876kb

input:

1 2

output:

0

result:

wrong answer 1st words differ - expected: '1', found: '0'