atcoder#AGC025F. [AGC025F] Addition and Andition

[AGC025F] Addition and Andition

配点 : 24002400

問題文

高橋君と青木君は計算をするのが大好きです。 そこで、二人は計算をして遊ぶことにしました。

まず二人は正整数を 11 つずつ用意しました。高橋君の用意した数は XX、青木君の用意した数は YY です。 そして、以下の手順を KK 回繰り返すことで、計算を楽しむことにしました。

  • 高橋君の持っている数と青木君の持っている数の bitwise AND を計算し、それを ZZ とする。
  • そして、高橋君と青木君の持っている数それぞれに ZZ を足す。

しかし、計算の大好きな二人にもこの計算は酷です。 そこで彼らの代わりに、高橋君が最終的に持つことになる数と、青木君が最終的に持つことになる数を求めてあげてください。

ただし、入出力は 22 進数表記で行われることに注意してください。 特に、X,YX,Y はそれぞれ長さ N,MN,M0,1 のみからなる文字列 S,TS,T として入力され、S,TS,T の先頭の文字は 1 であることが保証されています。

制約

  • 1K1061 \leq K \leq 10^6
  • 1N,M1061 \leq N,M \leq 10^6
  • S,TS,T の先頭の文字は 1 である。

入力

入力は以下の形式で標準入力から与えられる。

NN MM KK

SS

TT

出力

一行目には高橋君の最終的に持つことになる数を、二行目には青木君の最終的に持つことになる数を出力せよ。 ただし、それらを 22 進数表記で表し、先頭の文字が 1 であるような 0,1 のみからなる文字列として出力せよ。

2 3 3
11
101
10000
10010

各操作後の X,YX,Y の値は以下のようになります。

  • 一回目の操作後は (X,Y)=(4,6)(X,Y)=(4,6) になる。
  • 二回目の操作後は (X,Y)=(8,10)(X,Y)=(8,10) になる。
  • 三回目の操作後は (X,Y)=(16,18)(X,Y)=(16,18) になる。
5 8 3
10101
10101001
100000
10110100
10 10 10
1100110011
1011001101
10000100000010001000
10000100000000100010