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

B解题报告

算是规律题吧,,,x y z -x -y -z

注意的是假设数是小于0,要先对负数求模再加模再求模,不能直接加mod,可能还是负数

给我的戳代码跪了,,。

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;
long long x,y,z;
long long n;
int main()
{
    cin>>x>>y;
    cin>>n;
    z=y-x;
    long long t;
    t=(n-1)/3;
    if(t%2==0)
    {
        n%=3;
        if(n==0)
        {
            if(z>=0)
            cout<<z%1000000007;
            else cout<<(z%1000000007+1000000007)%1000000007;
        }
        else if(n==1)
        {
            if(x>=0)
            cout<<x%1000000007;
            else cout<<(x%1000000007+1000000007)%1000000007;
        }
        else
        {
            if(y>=0)
            cout<<y%1000000007;
            else cout<<(y%1000000007+1000000007)%1000000007;
        }
    }
    else
    {
        x=-x;
        y=-y;
        z=-z;
        n%=3;if(n==0)
        {
            if(z>=0)
            cout<<z%1000000007;
            else cout<<(z%1000000007+1000000007)%1000000007;
        }
        else if(n==1)
        {
            if(x>=0)
            cout<<x%1000000007;
            else cout<<(x%1000000007+1000000007)%1000000007;
        }
        else
        {
            if(y>=0)
            cout<<y%1000000007;
            else cout<<(y%1000000007+1000000007)%1000000007;
        }
    }
    return 0;
}

 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 + f33 = 2 + f3f3 = 1.

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


原文地址:https://www.cnblogs.com/lxjshuju/p/7091432.html