Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <iostream>
- #include <map>
- #include <fstream>
- using namespace std;
- typedef long long ll;
- int a[5010][1500];
- int d[1100];
- void sum(int x, int y)
- {
- int l;
- l = max(d[x],d[y]);
- for (int i = 1; i <= l; ++i)
- {
- a[x][i] += a[y][i];
- a[x][i+1] += (a[x][i] / 10);
- a[x][i] = (a[x][i] % 10);
- }
- d[x] = max(d[x] , d[y]);
- while (a[x][d[x]+1] > 0)
- {
- d[x]++;
- }
- }
- int main()
- {
- ll k, n;
- cin >> k >> n;
- for (int i = 0; i <= 5000; i++)
- {
- for (int j= 0; j <= 1000; j++)
- {
- a[i][j] = 0;
- }
- }
- for (int i = 0; i <= 1000; i++)
- {
- d[i] = 0;
- }
- a[0][1] = 1;
- d[0] = 1;
- for (int i = 1; i <= n; ++i)
- {
- for (int j = 1; j <= k; j++)
- {
- if (i - j >= 0)
- sum(i, i - j);
- }
- }
- for (int i = d[n]; i >= 1; i--)
- {
- cout << a[n][i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement