题目描述
设计一个数据结构. 给定一个正整数数列 a0,a1,⋯,an−1,你需要支持以下两种操作:
- MODIFY id x:将 aid 修改为 x;
- QUERY x:求最小的整数 p (0≤p<n),使得 gcd(a0,a1,⋯,ap)×xor(a0,a1,⋯,ap)=x。其中 xor(a0,a1,⋯,ap) 代表 a0,a1,⋯,ap 的异或和,gcd 表示最大公约数。
输入格式
第一行包含一个正整数 n。
接下来一行包含 n 个正整数 a0,a1,⋯,an−1。
之后一行包含一个正整数 q,表示询问的个数。
之后 q 行,每行包含一个询问。格式如题目中所述。
输出格式
对于每个 QUERY 询问,在单独的一行中输出结果。如果不存在这样的 p,输出 no
。
提示
数据范围及约定
- 对于 30% 的数据,n≤104,q≤1000。
- 对于 100% 的数据,n≤105,q≤10000,1≤ai≤109,询问操作中 x≤1018,修改操作中 0≤id<n,1≤x≤109。