Codeforces Round #257 (Div. 2 ) B. Jzzhu and Sequences
B. Jzzhu and Sequences
time limit per test
1 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputJzzhu 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 }