제출 #798046

#제출 시각아이디문제언어결과실행 시간메모리
798046aymanrsGarage (IOI09_garage)C++14
100 / 100
1 ms340 KiB
#include<bits/stdc++.h>
const int MOD = 1e9+7;
using namespace std;
void solve(){
	int n, m;
	cin >> n >> m;
	int ans = 0;
	int s[n], w[m], pc[m];
	set<int> p;
	for(int i = 0;i < n;i++){
		cin >> s[i];
		p.insert(i);
	}
	for(int i = 0;i < m;i++) cin >> w[i];
	queue<int> q;
	m*=2;
	while(m--){
		int c;cin>>c;
		if(c < 0){
			c=-c-1;
			if(!q.empty()){
				pc[q.front()] = pc[c];
				ans += w[q.front()]*s[pc[c]];
				q.pop();
			} else p.insert(pc[c]);
		} else {
			c--;
			if(p.empty()) {
				q.push(c);
				continue;
			}
			pc[c] = *p.begin();
			ans += s[pc[c]]*w[c];
			p.erase(p.begin());

		}
	}
	cout << ans << '\n';
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...