結果

問題 No.3457 Fibo-shrink
コンテスト
ユーザー forest3
提出日時 2026-05-01 12:01:22
言語 C++14
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 18 ms / 2,000 ms
コード長 591 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,783 ms
コンパイル使用メモリ 184,608 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-05-01 12:01:28
合計ジャッジ時間 4,253 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
#include <atcoder/modint>
using namespace atcoder;
using mint = modint;

#define rep(i, a, b) for (int i = a; i < b; i++)
using ll = long long;

int main(){
	int k, s, n;
	cin >> k >> s >> n;
	mint::set_mod(10007);
	vector<mint> f(k + 1), rf(k + 1);
	f[0] = f[1] = 1;
	rep(i, 2, k + 1) f[i] = f[i - 1] + f[i - 2];
	rep(i, 0, k + 1) rf[i] = f[i].inv();
	vector<mint> a(n + 1);
	a[1] = s;
	rep(i, 2, n + 1) {
		int l = 0;
		for(int j = i - 1; j > 0; j--) {
			a[i] += a[j] * rf[l];
			l++;
			if(l > k) break;
		}
	}
	cout << a[n].val() << endl;
}
0