#P3424. [POI 2005] SUM-Fibonacci Sums

[POI 2005] SUM-Fibonacci Sums

Description

斐波那契数是一个这样定义的整数:F(0)=1F(0)=1F(1)=1F(1)=1F(i)=F(i1)+F(i2)F(i)=F(i-1)+F(i-2) (i>=2)(i>=2),前几个数是这样的 1,1,2,3,5,8,1, 1, 2, 3, 5, 8, \ldots

伟大的计算机学家 Byteazar\texttt{Byteazar} 正在做一个非凡的计算机,其中的数由斐波那契表示!

如一个数列 b1,b2,,bnb_1, b_2, \ldots , b_n 表示数字 $F(1) \times b_1+b_2 \times F(2)+ \ldots +b_n \times F(n)$(不使用 F(0)F(0) )。

不幸的是,这样的表示并不明确,即相同的数字可以有不同的表示。比如 4242 可以表示为 (0,0,0,0,1,0,0,1)(0,0,0,0,1,0,0,1)(0,0,0,0,1,1,1,0)(0,0,0,0,1,1,1,0)(1,1,0,1,0,1,1)(1,1,0,1,0,1,1),于是 Byteazar\texttt{Byteazar} 加了一个限制:

  • 如果 n>1n>1,那么bn=1b_n=1,即数字的表示不包含前导零。
  • 如果 bi=1b_i=1,那么 bi+1=0b_{i+1}=0,即数字的表示不包含两个(或多个)连续的数字。

这个计算机的建设比 Byteazar\texttt{Byteazar} 所认为的要难,现在请你来帮帮他~。

你需要写一个程序:

读取两个正整数的表示,计算并向标准输出写入其和的表示。

Input Format

输入的第一行先是一个正整数 nn,为 xx 的斐波那契表示的长度,接下来的序列是 xx 的斐波那契表示。

第二行的第一个数字是一个正整数 mm,为 yy 的斐波那契表示的长度,接下来的序列是 yy 的斐波那契表示。

Output Format

输出只有一行程序,应写入 x+yx+y 的和的斐波纳契表示(满足上述条件),同样是先输出一个正整数 nn ,表示 x+yx+y 的和的斐波纳契表示的长度,然后再输出 x+yx+y 的和的斐波那契表示。

1n,m1061\leq n,m \leq 10^6

感谢@codesonic 提供的翻译

4 0 1 0 1
5 0 1 0 0 1
6 1 0 1 0 0 1