Submission #3882846
Source Code Expand
#include <stdio.h>
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cmath>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits.h>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <time.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#pragma warning(disable:4996)
#pragma comment(linker, "/STACK:336777216")
using namespace std;
#define mp make_pair
#define Fi first
#define Se second
#define pb(x) push_back(x)
#define szz(x) ((int)(x).size())
#define rep(i, n) for(int i=0;i<n;i++)
#define all(x) (x).begin(), (x).end()
#define ldb ldouble
typedef unsigned int uint;
typedef tuple<int, int, int> t3;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
typedef pair <ll, int> pli;
typedef pair <db, db> pdd;
int IT_MAX = 1 << 19;
const ll MOD = 1000000007;
const int INF = 0x3f3f3f3f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const db PI = acos(-1);
const db ERR = 1e-10;
const int MX = 5005;
const int MM = 998244353;
int C[MX][MX];
ll H(ll n, ll k){
return n+k-1 < 0 || k < 0? 0 : C[n+k-1][k];
}
int N, K;
ll solve(int n, int k, int K){
ll ans = 0;
for(int i = 0; i <= k; i++){
ll v = H(K, n - 2*i) * C[k][i] % MM;
if(i%2 == 0) ans = (ans + v) % MM;
else ans = (ans + MM - v) % MM;
}
return ans;
}
int main()
{
C[0][0] = 1;
for(int i = 1; i < MX; i++){
C[i][0] = 1;
for(int j = 1; j <= i; j++) C[i][j] = (C[i-1][j-1] + C[i-1][j]) % MM;
}
scanf("%d%d", &K, &N);
if(K == 1) return !printf("0\n");
for(int k = 2; k <= 2*K; k++){
ll ans = 0;
int v = min((k-1)/2, (2*K-k+1)/2);
if(k%2 == 0) ans = (solve(N-1, v, K-1) + solve(N, v, K-1)) % MM;
else ans = solve(N, v, K);
printf("%lld\n", ans);
}
}
Submission Info
Submission Time
2018-12-27 23:49:42+0900
Task
E - Stop. Otherwise...
User
zigui
Language
C++14 (GCC 5.4.1)
Score
700
Code Size
2052 Byte
Status
AC
Exec Time
80 ms
Memory
96512 KiB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:81:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &K, &N);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
700 / 700
Status
Set Name
Test Cases
Sample
s1.txt, s2.txt, s3.txt
All
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, s1.txt, s2.txt, s3.txt
Case Name
Status
Exec Time
Memory
01.txt
AC
79 ms
96512 KiB
02.txt
AC
71 ms
96512 KiB
03.txt
AC
78 ms
96512 KiB
04.txt
AC
46 ms
96512 KiB
05.txt
AC
59 ms
96512 KiB
06.txt
AC
76 ms
96512 KiB
07.txt
AC
80 ms
96512 KiB
08.txt
AC
50 ms
96512 KiB
09.txt
AC
46 ms
96512 KiB
10.txt
AC
52 ms
96512 KiB
11.txt
AC
57 ms
96512 KiB
12.txt
AC
45 ms
96512 KiB
13.txt
AC
48 ms
96512 KiB
14.txt
AC
76 ms
96512 KiB
15.txt
AC
77 ms
96512 KiB
16.txt
AC
75 ms
96512 KiB
17.txt
AC
45 ms
96512 KiB
18.txt
AC
45 ms
96512 KiB
19.txt
AC
45 ms
96512 KiB
20.txt
AC
46 ms
96512 KiB
s1.txt
AC
46 ms
96512 KiB
s2.txt
AC
46 ms
96512 KiB
s3.txt
AC
45 ms
96512 KiB