机器人重量

问题描述

现有一个机器人,初始重量为 XX 。该机器人有 NN 种可同时搭载的零件:类型1、类型2、......、类型 NN 。其中,类型 ii (1≤i≤N1≤i≤N )的零件重量为 WiWi​ 。初始状态下,这 NN 种零件均未搭载在机器人上。

按顺序处理 QQ 个查询,第 ii 个查询(1≤i≤Q1≤i≤Q )由整数 PiPi​ 表示,规则如下:

  • 若当前机器人未搭载类型 PiPi 的零件,则搭载它;若已搭载,则卸下它。随后输出机器人当前的重量。

约束条件

  • 1≤X≤1001≤X≤100
  • 1≤N≤1001≤N≤100
  • 1≤Wi≤1001≤Wi≤100 1≤i≤N1≤i≤N
  • 1≤Q≤1001≤Q≤100
  • 1≤Pi≤N1≤Pi≤N 1≤i≤Q1≤i≤Q
  • 所有输入值均为整数

输入格式

输入从标准输入按以下格式给出:

复制代码
X
N
W₁ W₂ ... Wₙ
Q
P₁
P₂
P₃
...
P_Q

输出格式

输出 QQ 行,第 ii 行( 1 ≤ i ≤ Q )为处理第 ii 个查询后的结果。

样例输入1

复制代码
31
4
15 65 92 35
4
2
1
4
1

样例输出1

复制代码
96
111
146
131

说明:初始时机器人重量为31。每个查询的重量变化如下:

  • 第1个查询:搭载类型2零件,重量变为 31+65=9631+65=96
  • 第2个查询:搭载类型1零件,重量变为 96+15=11196+15=111
  • 第3个查询:搭载类型4零件,重量变为 111+35=146111+35=146
  • 第4个查询:卸下类型1零件,重量变为 146−15=131146−15=131

样例输入2

复制代码
45
12
71 8 55 26 97 48 37 73 55
15
1
7
2
1
6
10
8
4
1
5
9
3

样例输出2

复制代码
114
122
129
58
106
139
212
238
244
341
414
469
495
550
645

代码:

cpp 复制代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,n,w[105],q,p[105];
bool a[105];
signed main(){
	cin>>x>>n;
	for(int i=1;i<=n;i++){
		cin>>w[i];
	}
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>p[i];
		if(a[p[i]]==0)a[p[i]]=1,x+=w[p[i]];
		else a[p[i]]=0,x-=w[p[i]];
		cout<<x<<endl;
	}
	return 0;
}
相关推荐
KAU的云实验台9 分钟前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
会编程的土豆16 分钟前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
低频电磁之道19 分钟前
解决 Windows C++ DLL 导出类不可见的编译错误
c++·windows
大熊背1 小时前
如何利用Lv值实现三级降帧
算法·自动曝光·lv·isppipeline
大尚来也1 小时前
驾驭并发:.NET多线程编程的挑战与破局之道
java·前端·算法
向阳而生,一路生花1 小时前
深入浅出 JDK7 HashMap 源码分析
算法·哈希算法
君义_noip2 小时前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s
Ricky_Theseus2 小时前
静态链接与动态链接
c++
摸个小yu2 小时前
【力扣LeetCode热题h100】链表、二叉树
算法·leetcode·链表
汀、人工智能2 小时前
[特殊字符] 第93课:太平洋大西洋水流问题
数据结构·算法·数据库架构·图论·bfs·太平洋大西洋水流问题