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).
Examples
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).
题意就是求fn对1000000007取模,f(n)=f(n-1)-f(n-2),多测试几个取模数据就能发现每6次一循环的规律.
本题注意点为取模时有负数应先加1000000007再对1000000007取模变成正数;定义使用long long以防溢出,%6时等于0的特殊处理.
#include"iostream"
#include"stdio.h"
#include"string.h"
#include"queue"
#include"algorithm"
using namespace std;
int main()
{
long long n,s[10];
while(cin>>s[1]>>s[2]>>n)
{
s[1]=s[1]%1000000007;
s[2]=s[2]%1000000007;
for(int i=3;i<=6;i++)
{
s[i]=s[i-1]-s[i-2];
s[i]%=1000000007;
}
long long t=n%6;
if(t==0)
t=6;
long long q;
q=(s[t]+1000000007)%1000000007;
cout<<q<<endl;
}
return 0;
}