#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; #define int long long const int maxn = 1e6 + 7; const int INF = (1 << 31) - 1; const int mod = 998244353; int a[2][2] = { {1,1},{1,-1} }; void mulself(int a[2][2]) { int c[2][2]; memset(c, 0, sizeof(c)); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { for (int k = 0; k < 2; ++k) { c[i][j] = (c[i][j]%mod + a[i][k] * a[k][j]%mod) % mod; } } } memcpy(a, c, sizeof(c)); } void mul(int f[2], int a[2][2]) { int c[2]; memset(c, 0, sizeof(c)); for (int j = 0; j < 2; ++j) { for (int k = 0; k < 2; ++k) { c[j] = (c[j] + f[k] * a[k][j]%mod) % mod; } } memcpy(f, c, sizeof(c)); } void work() { int a, b, n; cin >> a >> b >> n; int f[2] = { a%mod,b%mod }; int arr[2][2] = { {1,1},{1,-1} }; while (n) { if (n & 1) { mul(f, arr); } n >>= 1; mulself(arr); } cout << (f[0]+mod)%mod << ' ' << (f[1]+mod)%mod << '\n'; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T; cin >> T; for (int i = 1; i <= T; ++i) { // cout << "Case #" << i << ": "; work(); } }