Submission #1075953
Source Code Expand
#ifdef DEBUG #define _GLIBCXX_DEBUG #endif #include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back #define sz(s) ((int) ((s).size())) #ifdef DEBUG #define eprintf(...) fprintf(stderr, __VA_ARGS__), fflush(stderr) #else #define eprintf(...) ; #endif #ifdef _WIN32 #define LLD "%I64d" #else #define LLD "%lld" #endif typedef long long ll; typedef long double ld; const int inf = (int) 1e9 + 100; const ld eps = 1e-11; const ld pi = acos(-1.0L); mt19937 mrand(random_device{} ()); int rnd(int x) { return mrand() % x; } const int mod = 1e9 + 7; void add(int & a, int b) { if ((a += b) >= mod) { a -= mod; } } int mult(int a, int b) { return (ll) a * b % mod; } void precalc() { } int n, m, k; bool read() { if (scanf("%d%d%d", &n, &m, &k) < 3) { return false; } return true; } const int maxn = 2100; int dp[maxn], ndp[maxn]; void solve() { for (int i = 0; i < k; i++) { dp[i] = 1; } int res = 0; for (int i = 1; ; i++) { int all = i * (k - 1) + 1; if (all > n + m) { break; } for (int j = 1; j <= m; j++) { if ((m - j) % (k - 1) == 0 && (all - j) <= n) { add(res, dp[j]); } } memset(ndp, 0, sizeof(ndp)); for (int j = 1; j <= m; j++) { for (int r = j; r < j + k && r <= m; r++) { add(ndp[r], dp[j]); } } swap(ndp, dp); } printf("%d\n", res); } int main() { precalc(); #ifdef DEBUG assert(freopen("text.in", "r", stdin)); assert(freopen("text.out", "w", stdout)); #endif while (read()) { solve(); #ifdef DEBUG eprintf("Time: %.18f\n", (double) clock() / CLOCKS_PER_SEC); #endif } return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Eternal Average |
User | StanislavErshov |
Language | C++14 (GCC 5.4.1) |
Score | 1600 |
Code Size | 1784 Byte |
Status | AC |
Exec Time | 82 ms |
Memory | 384 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1600 / 1600 | ||||
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, 21.txt, 22.txt, 23.txt, 24.txt, s1.txt, s2.txt, s3.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 2 ms | 256 KB |
02.txt | AC | 82 ms | 256 KB |
03.txt | AC | 2 ms | 256 KB |
04.txt | AC | 2 ms | 256 KB |
05.txt | AC | 51 ms | 256 KB |
06.txt | AC | 21 ms | 256 KB |
07.txt | AC | 3 ms | 256 KB |
08.txt | AC | 4 ms | 256 KB |
09.txt | AC | 29 ms | 256 KB |
10.txt | AC | 28 ms | 256 KB |
11.txt | AC | 10 ms | 256 KB |
12.txt | AC | 8 ms | 256 KB |
13.txt | AC | 23 ms | 256 KB |
14.txt | AC | 10 ms | 256 KB |
15.txt | AC | 22 ms | 256 KB |
16.txt | AC | 3 ms | 256 KB |
17.txt | AC | 9 ms | 256 KB |
18.txt | AC | 17 ms | 256 KB |
19.txt | AC | 8 ms | 256 KB |
20.txt | AC | 27 ms | 256 KB |
21.txt | AC | 2 ms | 384 KB |
22.txt | AC | 36 ms | 256 KB |
23.txt | AC | 22 ms | 384 KB |
24.txt | AC | 20 ms | 256 KB |
s1.txt | AC | 2 ms | 256 KB |
s2.txt | AC | 2 ms | 384 KB |
s3.txt | AC | 3 ms | 256 KB |