Submission #978422

#TimeUsernameProblemLanguageResultExecution timeMemory
978422tamir1Garage (IOI09_garage)C++17
100 / 100
1 ms452 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,i,ans,w[2005],p[105],loc[2005],idx,val;
queue<ll> q;
set<ll> s;
int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin >> n >> m;
	for(i=1;i<=n;i++){
		cin >> p[i];
		s.insert(i);
	}
	for(i=1;i<=m;i++) cin >> w[i];
	for(i=1;i<=2*m;i++){
		cin >> val;
		if(val<0){
			val=-val;
			s.insert(loc[val]);
		}
		else q.push(val);
		while(!s.empty() && !q.empty()){
			idx=*(s.begin());
			s.erase(s.begin());
			val=q.front();
			q.pop();
			loc[val]=idx;
			ans+=w[val]*p[idx];
		}
	} 
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...