#include <bits/stdc++.h>
using namespace std;
int main(){
long long n,m,r(0); cin >> n >> m; vector<long long> A(n),B(m),C(m); set<long long> s; queue<long long> que; for (long long i(0);i < n;++i) s.emplace(i);
for (long long &a:A) cin >> a;
for (long long &a:B) cin >> a;
for (long long 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 |
0 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 |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 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 |
348 KB |
Output is correct |
16 |
Correct |
1 ms |
348 KB |
Output is correct |
17 |
Correct |
1 ms |
404 KB |
Output is correct |
18 |
Correct |
1 ms |
348 KB |
Output is correct |
19 |
Correct |
1 ms |
348 KB |
Output is correct |
20 |
Correct |
1 ms |
348 KB |
Output is correct |