// 問題の URL を書いておく // #include using namespace std; #define ENABLE_PRINT #if defined(ENABLE_PRINT) #define Print(v) \ do {\ cerr << #v << ": " << v << endl; \ }while(0) #define PrintVec(v) \ do {\ for(int __i = 0; __i < v.size(); ++__i) \ { \ cerr << #v << "[" << __i << "]: " << v[__i] << endl; \ }\ }while(0) #define P(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__) #define LP fprintf(stderr, "L: %d\n", __LINE__) #else #define Print(v) ((void)0) #define PrintVec(v) ((void)0) #define P(fmt, ...) ((void)0) #define LP ((void)0) #endif #define rep(i, n) for(int i = 0; i < (int)(n); ++i) using ll = long long; int moves[10][10][10]; int moved[10][10][10]; int main(int, const char**) { rep(i, 10) rep(j, 10) rep(k, 10) { moves[i][j][k] = (i + j + k) % 10; moved[i][j][k] = -1; } int p, q, r; ll K; cin >> p >> q >> r >> K; p %= 10; q %= 10; r %= 10; int t = 0; vector ans; while(true) { if(moved[p][q][r] != -1) { break; } moved[p][q][r] = t++; auto nx = moves[p][q][r]; ans.push_back(nx); p = q; q = r; r = nx; } auto clen = t - moved[p][q][r]; auto plen = moved[p][q][r]; P("clen: %d\n", clen); P("plen: %d\n", plen); P("-----\n", 0); rep(i, (int)ans.size()) { P("%d: %d\n", i, ans[i]); } K -= 4; if(K < plen) { cout << ans[K] << endl; } else { auto rest = K - plen; auto m = rest % clen; cout << ans[plen + m] << endl; } return 0; }