Pagini recente » Cod sursa (job #1123412) | Rating Cretu Dimosthenis (dimos) | Cod sursa (job #1297100) | Cod sursa (job #1179406) | Cod sursa (job #1685350)
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream fin("sortari2.in");
ofstream fout("sortari2.out");
const int mod = 999017;
int dp[1005]; //dp[i] = cate au lg i si num de operatii egal
int main() {
int n;
fin >> n;
dp[0] = dp[1] = 1;
for (int i = 2; i <= n; ++i) {
dp[i] += dp[i - 1] * 2;
for (int j = 3; j <= i; ++j) {
//j 1 2 3.. j-2, la inceput
dp[i] += dp[i - j + 1];
if (dp[i] >= mod)
dp[i] -= mod;
}
}
int allPerm = 1;
for (int i = 2; i <= n; ++i)
allPerm = (allPerm * i) % mod;
fout << (allPerm - dp[n] + mod) % mod << '\n';
return 0;
}
//Trust me, I'm the Doctor!