제출 #276647

#제출 시각아이디문제언어결과실행 시간메모리
276647barsboldGarage (IOI09_garage)C++14
100 / 100
6 ms416 KiB
#include<bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
using namespace std;
int r[2001];
int w[2001];
int s[2002];
int vis[2001];
 
int res =0;
int n , m;
 
int main(){
	cin >> n; 
	cin >>m;
	memset(vis , 0 , sizeof(vis));
	vector<int> wait;
	for(int i = 1; i<=n; i++){
		cin >> r[i];
	}	
	for(int i = 1; i<=m; i++){
		cin >> w[i];
	}
	for(int i = 1; i<=m * 2; i++){
		int tmp;
		
		cin >> tmp;
		if(tmp > 0){
			bool flag =true;
			for(int i = 1; i<=n; i++){
				if(vis[i] == 0){
					res+=r[i] * w[tmp];
					vis[i] = tmp;
					flag = false;
					break;
				}
			}
			if(flag) wait.pb(tmp);
		}
		else {
			int sul = -1;
			for(int i = 1; i<=n; i++){
				if(vis[i] == tmp * (-1)){
					vis[i] = 0;
					sul = i;
                    break;
				}
			}
			if(wait.size()!=0 ) {
				res+=w[wait[0]] * r[sul];
                vis[sul] = wait[0];
				wait.erase(wait.begin());
			}
		}
	}
	cout << res << endl;
	return 0;
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...