Submission #988882

# Submission time Handle Problem Language Result Execution time Memory
988882 2024-05-26T14:44:28 Z lo0ker Garage (IOI09_garage) C++17
100 / 100
1 ms 476 KB
/*
	* AUTHOR : lo0ker
	* Problem : Garage
	* source : https://dmoj.ca/problem/ioi09p5
*/

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using vi = vector<int>;
using pii = pair<int, int>;
#define pb push_back
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()

const int MOD = 1e9+7;

int main(){
  ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int n, m;
  cin >> n >> m;
  vi rate(n);
  priority_queue<int, vector<int>, greater<int>> pq;
  for(int i = 0; i < n; i++){
    cin >> rate[i];
    pq.push(i);
  }

  vi w(m+1);
  vi park(m+1, -1);
  for(int i = 1; i <= m; i++){
    cin >> w[i];
  }
  int in;
  int ans = 0;
  queue<int> q;
  for(int i = 0; i < m*2; i++){
    cin >> in;
    if(in > 0){
      if(pq.empty()){
        q.push(in);
      }
      else{
        int cur = pq.top();
        pq.pop();
        park[in] = cur;
        ans += (w[in] * rate[cur]);
      }
    }
    else{
      in = -in;
      pq.push(park[in]);
      if(!q.empty()){
        int temp = q.front();
        q.pop();
        int cur = pq.top();
        pq.pop();
        park[temp] = cur;
        ans += (w[temp] * rate[cur]);
      }
    }
  }
  cout << ans;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 476 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct