Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- ll mod = 1000000007;
- ll power(ll a, ll p)
- {
- if (p == 0)
- return 1;
- if (p % 2)
- return power(a, p - 1) * a % mod;
- ll z = power(a, p / 2);
- return z * z % mod;
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- int n;
- cin >> n;
- ll f[2][5001] = {};
- for (ll i = 2; i <= n; i++)
- {
- f[1][1] = i;
- f[1][2] = f[1][1] * (i - 1) % mod;
- for (int j = 3; j <= i; j++)
- f[1][j] = (f[0][j - 1] + f[1][j - 1] * (i - 1) % mod) % mod;
- for (int j = 1; j <= i; j++)
- f[0][j] = f[1][j];
- }
- cout << (power(n, n) + mod - f[0][n]) % mod;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement