제출 #1316412

#제출 시각아이디문제언어결과실행 시간메모리
1316412boclobanchatGarage (IOI09_garage)C++20
100 / 100
1 ms336 KiB
#include<bits/stdc++.h>
using namespace std;
set<int> st;
queue<int> Q;
long long A[9999],W[9999],pos[9999];
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>A[i];
		st.insert(i);
	}
	long long ans=0;
	for(int i=1;i<=m;i++) cin>>W[i];
	for(int i=1;i<=m*2;i++)
	{
		int res;
		cin>>res;
		if(res>0)
		{
			if(st.empty()) Q.push(res);
			else ans+=A[pos[res]=*st.begin()]*W[res],st.erase(st.begin());
		}
		else
		{
			st.insert(pos[-res]);
			if(!Q.empty()) ans+=A[pos[Q.front()]=*st.begin()]*W[Q.front()],Q.pop(),st.erase(st.begin());
		}
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...