Submission #13084560


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
typedef vector<int> vi;			typedef vector<ll> vl;
typedef vector<vi> vvi; 		typedef vector<vl> vvl;
typedef pair<int, int> 	pii;	typedef pair<ll, ll> pll;
typedef vector<pii> vii; 		typedef vector<pll> vll;
typedef map<int,int> mii;
typedef vector<char> vc;
typedef vector<bool> vb;
#define endl '\n'
#define forn(i,n) for(int i=0;i<n;i++)
#define rforn(i,n) for(int i=n-1;i>=0;i--)
#define forne(i,n) for(int i=1;i<=n;i++)
#define rforne(i,n) for(int i=n;i>=1;i--)
#define forse(i,s,e) for(int i=s;i<e;i++)
#define rforse(i,s,e) for(int i=e-1;i>=s;i--)
#define all(x) x.begin(),x.end()
#define sz(x) (ll)x.size()
#define MOD 998244353
#define F first
#define S second
#define pb push_back
#define in insert
#define mp(a, b) make_pair(a, b)
#define fill(a,x) memset(a,x,sizeof a);
#define trav(a,x) for(auto &a:x)
#define min3(a, b, c) min(min(a, b), c)
#define min4(a, b, c, d) min(min(a, b), min(c, d))
#define max3(a, b, c) max(max(a, b), c)
#define max4(a, b, c, d) max(max(a, b), max(c, d))
#define INF INT_MAX
#ifdef KARAN
	#include "../../trace.h"
#else
    #define trace(args...)
#endif

ll modpow(ll a, ll b, ll m = MOD){a %= m; ll res = 1; 
	while (b) {if (b & 1)res = (res * a) % m; a = (a * a) % m; b >>= 1;} return res;}
ll bpow(ll a, ll b){ll res = 1; while (b) {if (b & 1)res = res * a; a = a * a; b >>= 1;} return res;}
ll modinv(ll a, ll m = MOD) {return modpow(a, m - 2, m);}
void graph(vvi &adj, int m) {int x, y; forn(i, m){cin>>x>>y; adj[--x].pb(--y); adj[y].pb(x);}}


vl f;
vl invf;
ll MAXVAL = 2*(1e5)+100;
void init(){
	f.resize(MAXVAL, 1);
	invf.resize(MAXVAL, 1);
	forne(i, MAXVAL-1) f[i] = (f[i-1]*i)%MOD;
	forne(i, MAXVAL-1) invf[i] = modinv(f[i]);
}

ll ncr(ll n, ll r){
	return invf[n-r] * ( f[n] * invf[r] % MOD ) % MOD;
}

void solve(){
	ll n, m, k;
	cin>>n>>m>>k;
	ll answer = 0;
	forn(i, k+1){
		ll factor = (m*modpow(m-1, n-i-1))%MOD;
		answer = answer + (factor*ncr(n-1, i))%MOD;
		answer %= MOD;
	}
	cout<<answer<<endl;
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	#ifdef KARAN
		freopen("inp.txt", "r", stdin);
    	freopen("out.txt", "w", stdout);
    	freopen("err.txt", "w", stderr);
	#endif
    init();
	int t=1;
	while(t--)
		solve();
}

Submission Info

Submission Time
Task E - Colorful Blocks
User karanagarwalla
Language C++ (GCC 9.2.1)
Score 500
Code Size 2376 Byte
Status AC
Exec Time 48 ms
Memory 6232 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 43
Set Name Test Cases
Sample 00-Sample-00, 00-Sample-01, 00-Sample-02
All 00-Sample-00, 00-Sample-01, 00-Sample-02, 01-Handmade-00, 01-Handmade-01, 01-Handmade-02, 01-Handmade-03, 01-Handmade-04, 01-Handmade-05, 01-Handmade-06, 01-Handmade-07, 01-Handmade-08, 01-Handmade-09, 02-Random-00, 02-Random-01, 02-Random-02, 02-Random-03, 02-Random-04, 02-Random-05, 02-Random-06, 02-Random-07, 02-Random-08, 02-Random-09, 02-Random-10, 02-Random-11, 02-Random-12, 02-Random-13, 02-Random-14, 02-Random-15, 02-Random-16, 02-Random-17, 02-Random-18, 02-Random-19, 02-Random-20, 02-Random-21, 02-Random-22, 02-Random-23, 02-Random-24, 02-Random-25, 02-Random-26, 02-Random-27, 02-Random-28, 02-Random-29
Case Name Status Exec Time Memory
00-Sample-00 AC 37 ms 6084 KiB
00-Sample-01 AC 31 ms 6124 KiB
00-Sample-02 AC 32 ms 6188 KiB
01-Handmade-00 AC 33 ms 6232 KiB
01-Handmade-01 AC 32 ms 6104 KiB
01-Handmade-02 AC 34 ms 6232 KiB
01-Handmade-03 AC 31 ms 6232 KiB
01-Handmade-04 AC 29 ms 6136 KiB
01-Handmade-05 AC 48 ms 6104 KiB
01-Handmade-06 AC 31 ms 6212 KiB
01-Handmade-07 AC 48 ms 6104 KiB
01-Handmade-08 AC 40 ms 6228 KiB
01-Handmade-09 AC 32 ms 6124 KiB
02-Random-00 AC 32 ms 6092 KiB
02-Random-01 AC 34 ms 6232 KiB
02-Random-02 AC 30 ms 6232 KiB
02-Random-03 AC 29 ms 6232 KiB
02-Random-04 AC 35 ms 6188 KiB
02-Random-05 AC 31 ms 6088 KiB
02-Random-06 AC 31 ms 6132 KiB
02-Random-07 AC 31 ms 6192 KiB
02-Random-08 AC 34 ms 6176 KiB
02-Random-09 AC 29 ms 6228 KiB
02-Random-10 AC 34 ms 6192 KiB
02-Random-11 AC 36 ms 6192 KiB
02-Random-12 AC 32 ms 6232 KiB
02-Random-13 AC 31 ms 6124 KiB
02-Random-14 AC 31 ms 6104 KiB
02-Random-15 AC 33 ms 6088 KiB
02-Random-16 AC 31 ms 6232 KiB
02-Random-17 AC 35 ms 6124 KiB
02-Random-18 AC 38 ms 6100 KiB
02-Random-19 AC 40 ms 6208 KiB
02-Random-20 AC 33 ms 6188 KiB
02-Random-21 AC 32 ms 6192 KiB
02-Random-22 AC 42 ms 6100 KiB
02-Random-23 AC 41 ms 6216 KiB
02-Random-24 AC 34 ms 6212 KiB
02-Random-25 AC 38 ms 6212 KiB
02-Random-26 AC 32 ms 6136 KiB
02-Random-27 AC 40 ms 6192 KiB
02-Random-28 AC 34 ms 6192 KiB
02-Random-29 AC 32 ms 6196 KiB