結果
問題 | No.554 recurrence formula |
ユーザー | addeight2 |
提出日時 | 2016-08-21 17:03:42 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 639 bytes |
コンパイル時間 | 1,243 ms |
コンパイル使用メモリ | 158,032 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-18 15:18:25 |
合計ジャッジ時間 | 2,236 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:25:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | scanf("%d",&N); | ~~~~~^~~~~~~~~
ソースコード
/* * src.cpp * * Created on: 2016/08/21 * Author: joi */ #include <bits/stdc++.h> using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,a) FOR(i,0,a) const int MAX_N=1e5,MOD=1e9+7; typedef long long ll; int N; ll a[MAX_N+1]; ll esum,osum; int main(){ scanf("%d",&N); esum=0; //偶数番目の項の和 osum=1; //奇数番目の項の和 a[1]=1; FOR(i,2,N+1){ //第i項を決定する if (i%2==0){ //偶数なら a[i]=i*osum%MOD; esum+=a[i]; esum%=MOD; }else{ //奇数なら a[i]=i*esum%MOD; osum+=a[i]; osum%=MOD; } } printf("%lld\n",a[N]); return 0; }