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

 

你可能感兴趣的:(codeforces)