QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#498449 | #8815. Space Station | xinhaowen | WA | 0ms | 3828kb | C++14 | 1.0kb | 2024-07-30 14:59:01 | 2024-07-30 14:59:08 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;using ll=long long;
int rd(int x=0,char c=getchar()){int f=1;while(!isdigit(c))f=(c^'-'?1:-1),c=getchar();while(isdigit(c))x=x*10+(c^48),c=getchar();return x*f;}
const int N=114;const ll mod=998244353;
ll fac[N],inv[N];
ll ksm(ll a,ll b,ll r=1){while(b){if(b&1)r=r*a%mod;a=a*a%mod;b>>=1;}return r;}
void init(int n){
inv[0]=fac[0]=inv[1]=1;
for(int i=2;i<n;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for(int i=1;i<n;i++)fac[i]=fac[i-1]*i%mod,inv[i]=inv[i-1]*inv[i]%mod;
}
ll C(int n,int m){return fac[n]*inv[m]%mod*inv[n-m]%mod;}
int n,m;
int a[N],S;
ll dp[N][N*N];
int main(){
n=rd(),m=rd();
init(n);
dp[0][0]=1;
for(int i=1;i<=n;i++){
S+=(a[i]=rd());
for(int j=i;j>=1;j--)for(int k=S;k>=a[i];k--)
dp[j][k]=(dp[j][k]+dp[j-1][k-a[i]])%mod;
}
ll ans=0;
for(int i=1;i<=n;i++)for(int j=1;j<=S;j++){
if(i*m<j)ans=(ans+ksm(C(n,i),mod-2)*m%mod*dp[i][j])%mod;
else ans=(ans+ksm(C(n,i),mod-2)*j%mod*ksm(i,mod-2)%mod*dp[i][j])%mod;
}printf("%lld",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3828kb
input:
3 3 2 3 4
output:
0
result:
wrong answer 1st numbers differ - expected: '499122185', found: '0'