結果
問題 | No.492 IOI数列 |
ユーザー |
![]() |
提出日時 | 2017-06-30 12:58:05 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 1,000 ms |
コード長 | 1,069 bytes |
コンパイル時間 | 395 ms |
コンパイル使用メモリ | 42,104 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-04 18:25:10 |
合計ジャッジ時間 | 1,347 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include<cstdio>#include<vector>using namespace std;using ll=long long;using vll=vector<ll>;using vvll=vector<vll>;#define MOD 1000000007/*|ai+1| |100 1||ai|| 1|=| 0 1|| 1||a b||a b||c d||c d|*/vvll mul(vvll& lhs, vvll& rhs){vvll ret(2);ret[0].resize(2);ret[1].resize(2);ret[0][0]=(lhs[0][0]*rhs[0][0]+lhs[0][1]*rhs[1][0])%MOD;ret[0][1]=(lhs[0][0]*rhs[0][1]+lhs[0][1]*rhs[1][1])%MOD;ret[1][0]=(lhs[1][0]*rhs[0][0]+lhs[1][1]*rhs[1][0])%MOD;ret[1][1]=(lhs[1][0]*rhs[0][1]+lhs[1][1]*rhs[1][1])%MOD;return ret;}ll solve(ll n){vvll m(2), r(2);m[0].push_back(100);m[0].push_back( 1);m[1].push_back( 0);m[1].push_back( 1);r[0].push_back(1);r[0].push_back(0);r[1].push_back(0);r[1].push_back(1);for(;n>0;n>>=1){if(n&1) r=mul(r, m);m=mul(m, m);}return r[0][1];}ll solve2(ll n){ll ret=0;n%=11;for(;n>0;n--){ret=ret*100+1;}return ret;}int main(void){ll n;while(scanf("%lld", &n)==1){printf("%lld\n", solve(n));printf("%lld\n", solve2(n));}return 0;}