#include <bits/stdc++.h>
using namespace std;
int main(){
#define int long long
int n,m,r(0); cin >> n >> m; vector<int> A(n),B(m),C(m); set<int> s; queue<int> que; for (int i(0);i < n;++i) s.emplace(i);
for (int &a:A) cin >> a;
for (int &a:B) cin >> a;
for (int l(0),i;l < 2*m;++l){
cin >> i;
if (i>0) que.emplace(i-1);
else s.emplace(C[abs(i)-1]);
if (!que.empty()&&!s.empty()) r+=B[que.front()]*A[*s.begin()],C[que.front()]=*s.begin(),que.pop(),s.erase(s.begin());
}
cout << r << endl;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
688 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
12 |
Correct |
1 ms |
348 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
1 ms |
456 KB |
Output is correct |
16 |
Correct |
2 ms |
604 KB |
Output is correct |
17 |
Correct |
2 ms |
348 KB |
Output is correct |
18 |
Correct |
2 ms |
344 KB |
Output is correct |
19 |
Correct |
2 ms |
344 KB |
Output is correct |
20 |
Correct |
2 ms |
348 KB |
Output is correct |