#include #include #include using namespace std; using ll = long long; ll mod=10; struct Matrix{ int r, c; vector> a; Matrix(int r, int c) :r(r), c(c), a(r, vector(c, 0)){} static Matrix iden(int n){ //正方行列限定 Matrix I(n, n); for(int i=0; i=mod) a[i][j]-=mod; } return *this; } Matrix& operator-=(const Matrix& rhs) { //assert(r==rhs.r&&c==rhs.c); for(int i=0; i mul_vec(const vector& v) const { //assert(c == (int)v.size()); vector res(r, 0); for(int i=0;i>=1; } return R; } int main(void){ int p, q, r; ll k; cin >> p >> q >> r >> k; Matrix A(3, 3); A.a={{1, 1, 1}, {1, 0, 0}, {0, 1, 0}}; auto B=pow(A, k-3); auto v=B.mul_vec({r, q, p}); cout << v[0] << endl; return 0; }