New Year and Naming (Codeforces 1284A)
Tags: Implement, strings

Happy new year! The year 2020 is also known as Year Gyeongja (경자년, gyeongja-nyeon) in Korea. Where did the name come from? Let's briefly look at the Gapja system, which is traditionally used in Korea to name the years.There are two sequences of $$$n$$$ strings $$$s_1, s_2, s_3, \ldots, s_{n}$$$ and $$$m$$$ strings $$$t_1, t_2, t_3, \ldots, t_{m}$$$. These strings contain only lowercase letters. There might be duplicates among these strings.Let's call a concatenation of strings $$$x$$$ and $$$y$$$ as the string that is obtained by writing down strings $$$x$$$ and $$$y$$$ one right after another without changing the order. For example, the concatenation of the strings "code" and "forces" is the string "codeforces".The year 1 has a name which is the concatenation of the two strings $$$s_1$$$ and $$$t_1$$$. When the year increases by one, we concatenate the next two strings in order from each of the respective sequences. If the string that is currently being used is at the end of its sequence, we go back to the first string in that sequence.For example, if $$$n = 3, m = 4, s = $$${"a", "b", "c"}, $$$t =$$$ {"d", "e", "f", "g"}, the following table denotes the resulting year names. Note that the names of the years may repeat.  You are given two sequences of strings of size $$$n$$$ and $$$m$$$ and also $$$q$$$ queries. For each query, you will be given the current year. Could you find the name corresponding to the given year, according to the Gapja system?

Input: The first line contains two integers $$$n, m$$$ ($$$1 \le n, m \le 20$$$).The next line contains $$$n$$$ strings $$$s_1, s_2, \ldots, s_{n}$$$. Each string contains only lowercase letters, and they are separated by spaces. The length of each string is at least $$$1$$$ and at most $$$10$$$.The next line contains $$$m$$$ strings $$$t_1, t_2, \ldots, t_{m}$$$. Each string contains only lowercase letters, and they are separated by spaces. The length of each string is at least $$$1$$$ and at most $$$10$$$.Among the given $$$n + m$$$ strings may be duplicates (that is, they are not necessarily all different).The next line contains a single integer $$$q$$$ ($$$1 \le q \le 2\,020$$$).In the next $$$q$$$ lines, an integer $$$y$$$ ($$$1 \le y \le 10^9$$$) is given, denoting the year we want to know the name for.

Output: Print $$$q$$$ lines. For each line, print the name of the year as per the rule described above.

Note: The first example denotes the actual names used in the Gapja system. These strings usually are either a number or the name of some animal.

Sample Inputs:
10 12
sin im gye gap eul byeong jeong mu gi gyeong
yu sul hae ja chuk in myo jin sa o mi sin
14
1
2
3
4
10
11
12
13
73
2016
2017
2018
2019
2020

Sample Outputs:
sinyu
imsul
gyehae
gapja
gyeongo
sinmi
imsin
gyeyu
gyeyu
byeongsin
jeongyu
musul
gihae
gyeongja

Solution (Python):
def get_year_name(n, m, s, t, q, queries):
    year_name = []
    for y in queries:
        s_idx = (y - 1) % n
        t_idx = (y - 1) % m
        year_name.append(s[s_idx] + t[t_idx])
    return year_name
(n, m) = map(int, input().split())
s = input().split()
t = input().split()
q = int(input())
queries = [int(input()) for _ in range(q)]
year_names = get_year_name(n, m, s, t, q, queries)
for name in year_names:
    print(name)

Solution (Python):
""""""

def slv():
    (n, m) = map(int, input().split())
    a = list(map(str, input().split()))
    b = list(map(str, input().split()))
    q = int(input())
    while q:
        x = int(input())
        print(a[x % n - 1] + b[x % m - 1])
        q -= 1
if __name__ == '__main__':
    t = 1
    while t > 0:
        slv()
        t -= 1

Solution (Python):
(n, m) = (int(var) for var in input().split(' '))
string_list1 = input().split(' ')
string_list2 = input().split(' ')
n_cases = int(input())
results = ['' for _ in range(n_cases)]
for i in range(n_cases):
    year = int(input())
    answer = string_list1[year % n - 1] + string_list2[year % m - 1]
    results[i] = answer
for answer in results:
    print(answer)