結果
| 問題 | No.554 recurrence formula |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-06-29 21:13:34 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 561 bytes |
| コンパイル時間 | 1,811 ms |
| コンパイル使用メモリ | 167,936 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-30 23:54:06 |
| 合計ジャッジ時間 | 2,216 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define fastcin {\
cin.tie(0);\
ios::sync_with_stdio(false);\
}
#define rep(i, a, b) for(int i = a; i < b; i++)
typedef long long ll;
const ll MOD = 1000000007;
typedef vector<ll> vll;
ll make_a(ll n) {
ll sum[2] = {2, 6};
ll tmp[2] = {0, 1};
rep(i, 4, n+1) {
tmp[i&1] += sum[i&1];
sum[i&1] = i*(sum[1-i&1]+tmp[1-i&1])%MOD;
}
if(n==1) sum[n&1] = 1;
return sum[n&1];
}
int main() {
fastcin;
int n;
cin >> n;
cout << make_a(n) << endl;
return 0;
}