답안 #798046

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
798046 2023-07-30T10:14:03 Z aymanrs Garage (IOI09_garage) C++14
100 / 100
1 ms 340 KB
#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();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 316 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 316 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 324 KB Output is correct
14 Correct 1 ms 324 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 340 KB Output is correct