Codeforces Round #257 (Div. 2 ) B. Jzzhu and Sequences

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 3
3
Output
1
Input
0 -1
2
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).

 

 1 #include<iostream>
 2 #include<string.h>
 3 #include<stdio.h>
 4 #include<ctype.h>
 5 #include<algorithm>
 6 #include<stack>
 7 #include<queue>
 8 #include<set>
 9 #include<math.h>
10 #include<vector>
11 #include<map>
12 #include<deque>
13 #include<list>
14 using namespace std;
15 #define M 1000000007
16 int main()
17 {
18     __int64 n,a[6];
19     scanf("%I64d%I64d%I64d", &a[0], &a[1], &n);
20     a[0]=a[0]%M;
21     a[1]=a[1]%M;
22     a[2]=(a[1]-a[0])%M;
23     a[3]=(-a[0])%M;
24     a[4]=(-a[1])%M;
25     a[5]=(a[0]-a[1])%M;
26     printf("%I64d\n", a[(n-1)%6]>=0? a[(n-1)%6] : a[(n-1)%6]+M);
27     
28     
29     return 0;
30 }
View Code

 

posted @ 2014-07-20 18:11  qscqesze  阅读(327)  评论(0编辑  收藏  举报