首頁  >  文章  >  web前端  >  Codeforces Round #258 (Div. 2) B. Jzzhu and Sequences(矩阵快速幂)_html/css_WEB-ITnose

Codeforces Round #258 (Div. 2) B. Jzzhu and Sequences(矩阵快速幂)_html/css_WEB-ITnose

WBOY
WBOY原創
2016-06-24 12:01:33823瀏覽

题目链接:http://codeforces.com/problemset/problem/450/B

----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋:http://user.qzone.qq.com/593830943/main
----------------------------------------------------------------------------------------------------------------------------------------------------------


B. Jzzhu and Sequences

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Jzzhu has invented a kind of sequences, they meet the following property:

You are given x and y, please calculate fn modulo 1000000007 (109?+?7).

Input

The first line contains two integers x and y (|x|,?|y|?≤?109). The second line contains a single integer n (1?≤?n?≤?2·109).

Output

Output a single integer representing fn modulo 1000000007 (109?+?7).

Sample test(s)

input

2 33

output

input

0 -12

output

1000000006

Note

In the first sample, f2?=?f1?+?f3, 3?=?2?+?f3, f3?=?1.

In the second sample, f2?=??-?1; ?-?1 modulo (109?+?7) equals (109?+?6).


代码如下:

#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct A{    int mat[2][2];};A d,f;__int64 n,mod;A mul(A a,A b){    A t;    memset(t.mat,0,sizeof(t.mat));    for(int i=0;i<n for k="0;k<n;k++)" if j="0;j<n;j++)" t.mat return t quickp a p="d" memset i="0;i<n;++i)//单位矩阵" m.mat while m="mul(m,p);">>= 1 ;    }    return m;}int main(){    n=2;    int k,t;__int64 x,y,z;    while(scanf("%I64d%I64d",&x,&y)!=EOF)    {        int s=0;        scanf("%I64d",&z);        mod=1000000007;        if(z == 1)        {            if(x   <br>  <br>  <p></p> </n></cstring></cstdio></iostream>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn