#C. 懂点GCD的栈

    传统题 1000ms 256MiB

懂点GCD的栈

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

公约数,亦称"公因数"。 gcd\gcd则是最大公因数。

它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的"公约数"。

公约数中最大的称为最大公约数。

初始有一个为空的栈,进行 qq (1q2×105)(1 \leq q \leq 2 \times 10^5)次操作,操作分为以下四种:

1.在栈顶放入一个元素 xx (1x1081 \leq x \leq 10^8)

2.删除栈顶元素(数据保证此时栈内至少有一个元素)

3.查询栈顶元素

4.将栈顶的 kk 个元素修改成他们的最大公约数(数据保证 kk 不超过栈中元素数量)(比如栈内元素是4,2,将栈顶的2个元素修改成他们的最大公约数,栈内元素是2,2)

输入格式

第一行一个正整数qq

接下来的q行,每行包括一到两个整数,第一个整数 \: opop表示操作类型:

op=1op = 1 时,该行会有第二个整数 xx,表示在栈顶放入元素 xx

op=2op = 2 时,该行只有一个整数 opop,表示删除此时栈顶的元素(数据保证此时栈内至少有一个元素)

op=3op = 3 时,该行只有一个整数 opop,此时你需要输出栈顶的元素

op=4op = 4 时,该行会有第二个整数 kk,表示在将栈顶的 kk 个元素修改成他们的最大公约数(数据保证 kk 不超过栈中元素数量)

输出格式

对于每个 op=3op = 3 的询问,分别输出一行 yy,表示此时栈顶的元素

输入输出样例

11
1 2
1 3
3
4 2
3
2
1 2
4 2
3
2
3
3
1
1
1

提示

如果栈为空时询问栈顶元素请输出零

2024暑假算法集训营第三次排位赛

未参加
状态
已结束
规则
ACM/ICPC
题目
5
开始于
2024-7-27 14:00
结束于
2024-7-27 17:00
持续时间
3 小时
主持人
参赛人数
35