結果
| 問題 | No.526 フィボナッチ数列の第N項をMで割った余りを求める | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-07-10 13:48:31 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 107 ms / 2,000 ms | 
| コード長 | 1,081 bytes | 
| コンパイル時間 | 1,531 ms | 
| コンパイル使用メモリ | 166,352 KB | 
| 実行使用メモリ | 42,368 KB | 
| 最終ジャッジ日時 | 2024-07-21 07:11:21 | 
| 合計ジャッジ時間 | 2,703 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 12 | 
ソースコード
#include <bits/stdc++.h>
#include <typeinfo>
#include <cxxabi.h>
#ifdef LOCAL
#include "dbgtoki.hpp"
#define DUMP(i) dump((string)TOSTRING(i), demangle(typeid(i).name()), __LINE__ , i) 
#else
#define DUMP(i)
#endif
using namespace std;
#define TOSTRING(x) #x
#define SZ(x) (int)(x).size()
#define REP(i,n) for(int i=0;i<(n);i++)
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define ALL(s) (s).begin(), (s).end()
#define UNIQUE(v) v.erase( unique(v.begin(), v.end()) , v.end());
#define dis distance
#define so(V) sort(ALL(V))
#define rev(V) reverse(ALL(V))
#define pub push_back
#define sec second
#define fir first
typedef long long unsigned int llu;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vector <int> > vvi;
const int EPS = 1e-9;
const int MOD = 1e9+7;
const int INF = (1 << 30);
int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);
	ll n,m;
	cin >> n >> m;
	ll dp[n+1];
	dp[0] = 0;
	dp[1] = 0;
	dp[2] = 1;
	int cnt = 3;
	while(cnt <= n){
		dp[cnt] = (dp[cnt-1] + dp[cnt-2]) % m;
		cnt++;
	}
	cout << dp[n] << endl;
	return 0;
}
            
            
            
        