33OJ
登录 注册

#P17671. [IO 2025 #4] 斐波那契 XOR

[IO 2025 #4] 斐波那契 XOR

题目描述

期待已久的“四骑士”终于回归了!阿特拉斯、杰克·怀尔德和其他骗术大师正在筹备一个新的惊人魔术。这一次,他们的目标不是甩开警察,而是欺骗数学世界。

主角们的桌上放着两个数 n,mn,m。他们需要从斐波那契数 F0,F1,F2,…F_0,F_1,F_2,\ldots 中选出一个序列 Fa1,Fa2,…,FakF_{a_1},F_{a_2},\ldots,F_{a_k},其中 a1≤a2≤⋯≤aka_1\le a_2\le\cdots\le a_k。这个序列必须同时满足两个魔术的要求:

  • 阿特拉斯的魔术:Fa1⊕Fa2⊕⋯⊕Fak=nF_{a_1}\oplus F_{a_2}\oplus\cdots\oplus F_{a_k}=n。
  • 杰克的魔术:Fa1+Fa2+⋯+Fak=mF_{a_1}+F_{a_2}+\cdots+F_{a_k}=m。

这里 ⊕\oplus 表示按位异或,斐波那契数列定义为 F0=1F_0=1、F1=1F_1=1,且对于 i≥2i\ge2,Fi=Fi−1+Fi−2F_i=F_{i-1}+F_{i-2}。这就是他们的秘密武器。注意,选出的数不要求互不相同,也就是说,可以多次选取同一个斐波那契数。

你的任务是求出能让骑士们向观众展示这个魔术的最小元素个数 kk。如果无法做到,就意味着计划失败,魔术无法完成。

输入格式

第一行包含两个整数 n,mn,m,其中 1≤n,m≤10121\le n,m\le10^{12}。

输出格式

输出一个整数:如果题目要求的序列存在,输出最小的 kk;否则输出 −1-1。

3 3
1
13 19
3