
USACO 2017 January Contest, Silver
Problem 3. Secret Cow Code
Contest has ended.

Log in to allow submissions in analysis mode
Given a string s, let F(s) be s followed by s "rotated" one character to the right (in a right rotation, the last character of s rotates around and becomes the new first character). Given an initial string s, the cows build their infinite-length code string by repeatedly applying F; each step therefore doubles the length of the current string.
Given the initial string and an index N, please help the cows compute the character at the Nth position within the infinite code string.
INPUT FORMAT (file cowcode.in):
The input consists of a single line containing a string followed by N. The string consists of at most 30 uppercase characters, and N≤1018.Note that N may be too large to fit into a standard 32-bit integer, so you may want to use a 64-bit integer type (e.g., a "long long" in C/C++).
OUTPUT FORMAT (file cowcode.out):
Please output the Nth character of the infinite code built from the initial string. The first character is N=1.SAMPLE INPUT:
COW 8
SAMPLE OUTPUT:
C
In this example, the initial string COW expands as follows:
COW -> COWWCO -> COWWCOOCOWWC 12345678
Problem credits: Brian Dean