제출 #758275

#제출 시각아이디문제언어결과실행 시간메모리
758275JANCARAPANGarage (IOI09_garage)C++17
100 / 100
2 ms340 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define sz(a) (long long) a.size() #define endl '\n' const long long INF = 1e18, MOD = 1e9+7; void test_case() { int n, m; cin >> n >> m; set<pair<int,int>> r; for (int i = 0; i < n; i++) { int x; cin >> x; r.insert({i, x}); } vector<int> w(m); vector<pair<int,int>> cur(m); for (int i = 0; i < m; i++) cin >> w[i]; ll ans = 0; queue<int> q; for (int i = 0; i < 2 * m; i++) { int p; cin >> p; if (p > 0) { q.push(p - 1); } else { p++; r.insert(cur[-p]); } while (q.size() and r.size()) { auto p = q.front(); q.pop(); auto it = r.begin(); cur[p] = *it; ans += (*it).se * w[p]; r.erase(it); } } cout << ans << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); int tt = 1; //cin >> tt; while (tt--) { test_case(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...