Problem:
たしざんひきざん (Calculation Training)

square1001 君は E869120 君に、誕生日プレゼントとして二つの数字 $A$ と $B$ をプレゼントしました。

E869120 君はこの二つの数字を使って、計算トレーニングをすることにしました。

具体的には、E869120君は次の操作をちょうど $N$ 回これらの数に行います。

奇数回目の操作のとき、$A$ を $A-B$ で置き換える

偶数回目の操作のとき、$B$ を $A+B$ で置き換える

E869120君が $N$ 回の操作をした後、$A$ と $B$ の値がそれぞれいくつになっているか求めてください。

入力

入力は以下の形式で標準入力から与えられる。

$N$
$A$ $B$

出力

E869120君が $N$ 回の操作をした後の $A$ と $B$ の値を、この順に空白区切りで出力してください。

ただし、最後には改行を入れること。

制約

$1 \leq N \leq 1000000000000000000 \ (= 10^{18})$

$1 \leq A \leq 1000000000 \ (= 10^9)$

$1 \leq B \leq 1000000000 \ (= 10^9)$

入力は全て整数である。

入力例1

3
3 4

出力例1

-4 3

$(A, B)$ の値は $(3,4) → (-1,4) → (-1,3) → (-4,3)$ と変化します。

入力例2

8
6 9

出力例2

3 -6

Solution in C# (judge verdict: Accepted)

using System;

public class P
{
    public int a { get; set; }
    public int b { get; set; }
}

public class hello
{
    public static void Main()
    {
        var n = long.Parse(Console.ReadLine().Trim());
        string[] line = Console.ReadLine().Trim().Split(' ');
        var a = int.Parse(line[0]);
        var b = int.Parse(line[1]);
        var t = n % 12;
        if (t >= 6)
        {
            t -= 6;
            var ans = getAns((int)t, a, b);
            Console.WriteLine("{0} {1}", -ans.a, -ans.b);
        }
        else
        {
            var ans = getAns((int)t, a, b);
            Console.WriteLine("{0} {1}", ans.a, ans.b);
        }
    }
    static P getAns(int n, int a, int b)
    {
        if (n == 0) return new P { a = a, b = b };
        if (n == 1) return new P { a = a - b, b = b };
        if (n == 2) return new P { a = a - b, b = a };
        if (n == 3) return new P { a = -b, b = a };
        if (n == 4) return new P { a = -b, b = a - b };
        return new P { a = -a, b = a - b };
    }
}