提出 #58778180
ソースコード 拡げる
#include<bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (n); ++i)
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
const int Mod = 998244353;
inline void uadd(int &a, const int &b){ a += b - Mod; a += (a>>31) & Mod; }
inline int add(int a, const int &b){ a += b - Mod; a += (a>>31) & Mod; return a; }
inline void usub(int &a, const int &b){ a -= b; a += (a>>31) & Mod; }
inline int sub(int a, const int &b){ a -= b, a += (a>>31) & Mod; return a; }
inline void umul(int &a, const int &b){ a = (int)(1ll * a * b % Mod); }
inline int mul(const int &a, const int &b){ return (int)(1ll * a * b % Mod); }
int qpow(int b, ll p){ int ret = 1; while(p){ if(p & 1) umul(ret, b); umul(b, b), p >>= 1; } return ret; }
const int fN = 10010;
int fact[fN], invfact[fN], inv[fN];
void initfact(int n){
fact[0] = 1; for(int i = 1; i <= n; ++i) fact[i] = mul(fact[i - 1], i);
invfact[n] = qpow(fact[n], Mod - 2); for(int i = n; i > 0; --i) invfact[i - 1] = mul(invfact[i], i);
for(int i = 1; i <= n; ++i) inv[i] = mul(invfact[i], fact[i - 1]);
}
inline int binom(int n, int m){ return mul(fact[n], mul(invfact[m], invfact[n - m])); }
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template<typename T> inline void chmax(T &_a, const T &_b){ (_b>_a) ? (_a=_b) : _a; }
template<typename T> inline void chmin(T &_a, const T &_b){ (_b<_a) ? (_a=_b) : _a; }
int n, m;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
int len = mul(m, m);
int h = 0;
for(int i = 1; i <= n; ++i) uadd(h, qpow(i, Mod - 2));
cout << sub(mul(mul(2, len), mul(n, h)), len) << "\n";
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
800 / 800 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt, 00_sample_01.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_random_max_00.txt, 02_random_max_01.txt, 02_random_max_02.txt, 02_random_max_03.txt, 02_random_max_04.txt, 02_random_max_05.txt, 02_random_max_06.txt, 02_random_max_07.txt, 02_random_max_08.txt, 02_random_max_09.txt, 03_min_00.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3348 KiB |
| 00_sample_01.txt |
AC |
16 ms |
3556 KiB |
| 01_random_00.txt |
AC |
7 ms |
3464 KiB |
| 01_random_01.txt |
AC |
13 ms |
3468 KiB |
| 01_random_02.txt |
AC |
21 ms |
3468 KiB |
| 01_random_03.txt |
AC |
16 ms |
3604 KiB |
| 01_random_04.txt |
AC |
2 ms |
3476 KiB |
| 01_random_05.txt |
AC |
19 ms |
3424 KiB |
| 01_random_06.txt |
AC |
15 ms |
3464 KiB |
| 01_random_07.txt |
AC |
5 ms |
3396 KiB |
| 01_random_08.txt |
AC |
3 ms |
3392 KiB |
| 01_random_09.txt |
AC |
10 ms |
3412 KiB |
| 02_random_max_00.txt |
AC |
25 ms |
3464 KiB |
| 02_random_max_01.txt |
AC |
26 ms |
3472 KiB |
| 02_random_max_02.txt |
AC |
25 ms |
3480 KiB |
| 02_random_max_03.txt |
AC |
25 ms |
3472 KiB |
| 02_random_max_04.txt |
AC |
25 ms |
3424 KiB |
| 02_random_max_05.txt |
AC |
26 ms |
3472 KiB |
| 02_random_max_06.txt |
AC |
26 ms |
3412 KiB |
| 02_random_max_07.txt |
AC |
26 ms |
3396 KiB |
| 02_random_max_08.txt |
AC |
25 ms |
3464 KiB |
| 02_random_max_09.txt |
AC |
25 ms |
3348 KiB |
| 03_min_00.txt |
AC |
1 ms |
3464 KiB |