# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
879615 | amin_2008 | Garage (IOI09_garage) | C++17 | 1 ms | 604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/* author: amin */
#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
#define ios ios_base::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0)
#define vi vector<int>v
#define vs vector<string>v
#define vc vector<char>v
#define ll long long
#define vl vector<ll>v
#define pb push_back
#define ins insert
#define ts to_string
#define st stoi
#define ull unsigned long long
#define endl '\n'
using namespace std;
int p[101], w[2001];
set<int> s;
map<int,int> mp;
deque<int> d;
const int MOD = 1e9 + 7;
void solve()
{
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++)
s.ins(i);
for(int i = 1; i <= n; i++)
cin >> p[i];
for(int i = 1; i <= m; i++)
cin >> w[i];
int res = 0;
for(int i = 1; i <= 2 * m; i++) {
int car;
cin >> car;
if (car > 0) {
if (!s.empty()) {
int pp = *s.begin();
res += w[car] * p[pp];
s.erase(s.begin());
mp[car] = pp;
}
else {
d.push_back(car);
}
}
else {
int pp = mp[-car];
if (!d.empty()) {
int pc = d[0];
res += w[pc] * p[pp];
mp[pc] = pp;
d.pop_front();
}
else {
s.ins(pp);
}
}
}
cout << res << endl;
}
int main ()
{
ios;
int t;
//cin >> t;
t = 1;
while(t--){
solve();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |