1524:蒜头君寻宝
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
命题人:
提交:4
解决:2
题目描述
蒜头君⼀不⼩⼼发现了⼤海尽头的宝藏,宝藏存在⼀座岛上,并排列成⼀条直线。
宝藏由⼀个⻓度为 n 序列表示,第 i(1<=i<=n)个位置的价值为 ai ,蒜头君最开始在船
上,也就是 0 号位置。
接下来有 Q 次操作,共有三种操作,⽤整数 op 表示操作类型:
op = 1 :输⼊ x 1/2 ,表示蒜头君向左或者向右移动 x 步,并捡起路过位置的宝藏。其
中 1 表示向左,2 表示向右;每个位置的宝藏只能被拾取⼀次(⽐如第⼀次路过位置 ,
则拾取其中的价值 ai,后⾯再路过则不可拾取,即获得的价值为 0)。若移动距离超过边
界,则到边界停⽌,边界分别为 1 和 n 。⽐如说当前蒜头君在 3,那么向左移动 5 步,则
最终会停留 1 位置。
op = 2 :表示询问上⼀次移动拾取了多少价值总额,如果前⾯没有移动过,则输出 0。
op = 3 :表示询问当前蒜头君的位置在哪⾥。
数据保证第⼀步移动会让蒜头君进⼊1~n,即第⼀步移动会让蒜头君登岛。
宝藏由⼀个⻓度为 n 序列表示,第 i(1<=i<=n)个位置的价值为 ai ,蒜头君最开始在船
上,也就是 0 号位置。
接下来有 Q 次操作,共有三种操作,⽤整数 op 表示操作类型:
op = 1 :输⼊ x 1/2 ,表示蒜头君向左或者向右移动 x 步,并捡起路过位置的宝藏。其
中 1 表示向左,2 表示向右;每个位置的宝藏只能被拾取⼀次(⽐如第⼀次路过位置 ,
则拾取其中的价值 ai,后⾯再路过则不可拾取,即获得的价值为 0)。若移动距离超过边
界,则到边界停⽌,边界分别为 1 和 n 。⽐如说当前蒜头君在 3,那么向左移动 5 步,则
最终会停留 1 位置。
op = 2 :表示询问上⼀次移动拾取了多少价值总额,如果前⾯没有移动过,则输出 0。
op = 3 :表示询问当前蒜头君的位置在哪⾥。
数据保证第⼀步移动会让蒜头君进⼊1~n,即第⼀步移动会让蒜头君登岛。
输入
输⼊共 n+Q+2 ⾏。
第⼀⾏输⼊⼀个正整数 n,表示序列的⻓度。
第⼆⾏输⼊ n 个正整数 ai,表示第 i 个位置的价值。
接下来输⼊⼀个正整数 Q,表示有 Q 次操作。
接下来 Q ⾏,输⼊正整数 op;
如果 op = 1,再输⼊ x f ,其中 f=1 或 f=2。
如果 op = 2,表示操作 2;
第⼀⾏输⼊⼀个正整数 n,表示序列的⻓度。
第⼆⾏输⼊ n 个正整数 ai,表示第 i 个位置的价值。
接下来输⼊⼀个正整数 Q,表示有 Q 次操作。
接下来 Q ⾏,输⼊正整数 op;
如果 op = 1,再输⼊ x f ,其中 f=1 或 f=2。
如果 op = 2,表示操作 2;
如果 op = 3,表示操作 3;
1<=n,q<=105 , 1<=ai<=109, 1<=x<=n
输出
对于每⼀次询问(操作 2、操作 3),输出对应答案。
样例输入-1 复制
5
1 2 3 4 5
5
1 3 2
2
1 1 1
2
3
样例输出-1 复制
6
0
2