제출 #481576

#제출 시각아이디문제언어결과실행 시간메모리
481576SlavicGGarage (IOI09_garage)C++17
100 / 100
2 ms460 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define ll long long #define forn(i,n) for(int i=0;i<n;i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(),v.rend() #define pb push_back #define sz(a) (int)a.size() void solve() { int n, m; cin >> n >> m; vector<int> a(n), w(m + 1); forn(i, n) cin >> a[i]; forn(i, m) cin >> w[i + 1]; set<int> free; for(int i = 0;i < n;++i)free.insert(i); ll ans = 0; int q = 2 * m; map<int,int> spot; queue<int> v; while(q--) { int x; cin >> x; bool depart = false; if(x < 0){ depart = true; x = -x; } if(depart){ ans += w[x] * a[spot[x]]; free.insert(spot[x]); }else v.push(x); while(sz(v) && sz(free)){ int c = v.front(); spot[c] = *free.begin(); free.erase(free.begin()); v.pop(); } } cout << ans << '\n'; } int32_t main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t = 1; //cin >> t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...