Submission #684139

#TimeUsernameProblemLanguageResultExecution timeMemory
684139Hacv16Garage (IOI09_garage)C++17
65 / 100
1 ms344 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAX = 2e6 + 15; const int INF = 0x3f3f3f3f; ll n, m, rev, r[MAX], w[MAX], spot[MAX]; set<int> s; queue<int> q; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m; for(int i = 1; i <= n; i++){ cin >> r[i]; s.insert(i); } for(int i = 1; i <= m; i++) cin >> w[i]; for(int i = 1; i <= 2 * m; i++){ int car; cin >> car; if(car < 0) car = -car; if(spot[car] != 0){ s.insert(spot[car]); if(q.size()){ int nx = q.front(); q.pop(); spot[nx] = spot[car]; rev += r[spot[nx]] * w[nx]; }else{ s.insert(spot[car]); } }else{ if(s.size()){ int curSpot = *s.begin(); s.erase(s.begin()); spot[car] = curSpot; rev += r[spot[car]] * w[car]; }else{ q.push(car); } } } cout << rev << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...