Submission #34618748


Source Code Expand

#include<bits/stdc++.h>
#define LL long long
#define pb push_back
#define SZ(x) ((int)x.size()-1)
#define ms(a,b) memset(a,b,sizeof a)
#define F(i,a,b) for (int i=(a);i<=(b);++i)
#define DF(i,a,b) for (int i=(a);i>=(b);--i)
//#define mp make_pair
//#define OO(x) fixed<<setprecision(x)
using namespace std;
//mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
inline int read(){
	char ch=getchar(); int w=1,c=0;
	for(;!isdigit(ch);ch=getchar()) if (ch=='-') w=-1;
	for(;isdigit(ch);ch=getchar()) c=(c<<1)+(c<<3)+(ch^48);
	return w*c;
}
const int mod=998244353;//?????????

LL fast(LL x,LL p){
	LL ret=1;
	for (;p;p>>=1,x=x*x%mod) if (p&1) ret=ret*x%mod;
	return ret;
}
const int M=1e6+10;
LL fac[M],inv[M],iv[M];
void init(int n){
	fac[0]=1;
	F(i,1,n) fac[i]=fac[i-1]*i%mod;
	inv[n]=fast(fac[n],mod-2);
	DF(i,n,1) inv[i-1]=inv[i]*i%mod;
	iv[1]=1;
	F(i,2,n) iv[i]=(mod-mod/i)*iv[mod%i]%mod;
}
LL C(int x,int y){
	if (y<0 || x<y) return 0;
	return fac[x]*inv[y]%mod*inv[x-y]%mod;
}
int n,m;
int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	n=read(); m=read();
	init(1000000);
	cout<<fast(m,n-1)*fast(n,m)%mod<<"\n";
//	LL o=1;
//	int nn=n-1;
//	LL ans=0;
//	F(i,0,m){
//		if (!o) continue;
//		LL tmp=0;
//		F(j,nn,nn){
//			tmp=(tmp+C(nn,j)*fast(2,j)%mod*inv[m-i-j]%mod*inv[i+j]%mod*fac[j])%mod;
//		}
//		ans=(ans+tmp*o%mod*fac[m])%mod;	
//		o=o*(1ll*nn*(nn-1)/2%mod)%mod;
//		nn-=2;
//	}
//	cout<<ans<<"\n";
	return 0;
}
/* stuff you should look for
	* int overflow, array bounds
	* special cases (n=1?)
	* do smth instead of nothing and stay organized
	* WRITE STUFF DOWN
	* DON'T GET STUCK ON ONE APPROACH
*/

Submission Info

Submission Time
Task D - Sets Scores
User yangziheng
Language C++ (GCC 9.2.1)
Score 700
Code Size 1722 Byte
Status AC
Exec Time 44 ms
Memory 26976 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 2
AC × 26
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt
Case Name Status Exec Time Memory
example_00.txt AC 42 ms 26796 KiB
example_01.txt AC 39 ms 26860 KiB
test_00.txt AC 40 ms 26868 KiB
test_01.txt AC 39 ms 26916 KiB
test_02.txt AC 34 ms 26840 KiB
test_03.txt AC 44 ms 26912 KiB
test_04.txt AC 41 ms 26952 KiB
test_05.txt AC 41 ms 26976 KiB
test_06.txt AC 39 ms 26836 KiB
test_07.txt AC 40 ms 26928 KiB
test_08.txt AC 42 ms 26864 KiB
test_09.txt AC 39 ms 26796 KiB
test_10.txt AC 39 ms 26816 KiB
test_11.txt AC 39 ms 26956 KiB
test_12.txt AC 39 ms 26956 KiB
test_13.txt AC 40 ms 26820 KiB
test_14.txt AC 40 ms 26912 KiB
test_15.txt AC 36 ms 26912 KiB
test_16.txt AC 40 ms 26832 KiB
test_17.txt AC 41 ms 26908 KiB
test_18.txt AC 38 ms 26976 KiB
test_19.txt AC 41 ms 26928 KiB
test_20.txt AC 36 ms 26740 KiB
test_21.txt AC 35 ms 26944 KiB
test_22.txt AC 35 ms 26740 KiB
test_23.txt AC 38 ms 26796 KiB