Pagini recente » Cod sursa (job #2771102) | Cod sursa (job #2466002) | Cod sursa (job #2863941) | Cod sursa (job #2364953) | Cod sursa (job #1759808)
#include <fstream>
#include <queue>
#include <map>
#include <set>
using namespace std;
ifstream cin("sortari2.in");
ofstream cout("sortari2.out");
const int MAXN = 1000;
const int MOD = 999017;
int dp[1 + MAXN];
int main() {
int n, answer = 1;
cin >> n;
dp[0] = dp[1] = 1;
for (int i = 2; i <= n; i++) {
answer = ((long long) answer * i) % MOD;
dp[i] = dp[i - 1] * 2;
if (dp[i] >= MOD)
dp[i] -= MOD;
for (int j = 3; j <= i; j++) {
dp[i] += dp[i - j + 1];
if (dp[i] >= MOD)
dp[i] -= MOD;
}
}
answer -= dp[n];
if (answer < 0)
answer += MOD;
cout << answer << "\n";
return 0;
}