使用栈模拟整个过程。
依次处理每个元素ai:
给定正整数序列 a1,a2,…,an 和正整数阈值 S。从空栈开始,按顺序将 a1,a2,…,an 依次压入栈中;每次压入新元素后,执行如下熔合过程直至不能继续:若栈顶元素为 x,其下方相邻元素为 y,并且 x+y>S,则将 y 替换为 gcd(x,y) 并移除 x;重复检查直至栈中不存在相邻两元素之和严格大于 S 的相邻对。处理完整个序列后,输出最终栈大小以及自栈底到栈顶的所有元素。
第一行包含两个整数 n,S(1≤n≤105,1≤S≤109)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109)。
第一行输出栈大小 k,第二行输出 k 个整数(栈底到栈顶)。
输入
4 5
3 4 2 6
输出
2
1 2
本题属于以下题库,请选择所需题库进行购买