Pagini recente » Cod sursa (job #588201) | Cod sursa (job #3345239) | Cod sursa (job #551997) | Cod sursa (job #1461608) | Cod sursa (job #3340752)
//https://www.infoarena.ro/problema/100m
//#ifdef _MSC_VER
// #define _CRT_SECURE_NO_WARNINGS
//#elif __GNUC__
// #pragma GCC optimize("Ofast,unroll-loops,inline")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
//#endif
//#define _USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <utility>
#include <cstdint>
//#include <cstdio>
//#include <algorithm>
//#include <vector>
//#include <array>
//#include <list>
//#include <forward_list>
//#include <string>
//#include <cstring>
//#include <cmath>
//#include <bitset>
//#include <queue>
//#include <stack>
//#include <map>
//#include <set>
//#include <unordered_map>
//#include <unordered_set>
//#include <limits>
//#include <climits>
//#include <iomanip>
//#include <tuple>
//#include <numeric>
//#include <chrono>
//#include <memory>
using namespace std;
using int64 = int64_t;
using uint64 = uint64_t;
using int16 = int16_t;
using uint16 = uint16_t;
using pii = pair<int, int>;
using pll = pair<int64, int64>;
#define all(x) (x).begin(), (x).end()
#define sz(x) (int)(x).size()
#define pb push_back
#define for0(i,n) for(int i=0; i<(n); ++i)
#define for1(i,n) for(int i=1; i<=(n); ++i)
#define foreach(x,a) for(auto& x : a)
#define cforeach(x,a) for(const auto& x : a)
#define cendl cout << "\n"
#define fendl fout << "\n"
#define FASTIO ios::sync_with_stdio(false); cin.tie(nullptr);
ifstream fin("100m.in");
ofstream fout("100m.out");
//FILE* fin = fopen("", "r");
//FILE* fout = fopen("", "w");
const int MOD = 666013;
const int NRMAX = 5000;
int power_of_manyyy(int b, int e, int modulo)
{
int rez = 1;
while (e > 0)
{
if (e & 1)
rez = (int64)rez * b % modulo;
b = (int64)b * b % modulo;
e >>= 1;
}
return rez;
}
int invMod(int x, int m)
{
return power_of_manyyy(x, m - 2, m);
}
int dp[2][NRMAX + 1]
int main()
{
//FASTIO;
int n, fact = 1;
fin >> n;
dp[0] = 1;
for (int i = 1; i < n; ++i)
{
for (int j = 1; j <= i; ++j)
{
dp[i & 1][j] = (j + 1) * dp[(i + 1) & 1][j] + dp[(i + 1) & 1][j - 1] % MOD;
}
}
for1(i, n)
{
rez = (rez + dp[] *)
fact = fact * i % MOD;
}
fout << rez;
fendl;
return 0;
}