Submission #971469

# Submission time Handle Problem Language Result Execution time Memory
971469 2024-04-28T15:06:36 Z 12345678 Garage (IOI09_garage) C++17
100 / 100
1 ms 604 KB
#include <bits/stdc++.h>

using namespace std;

const int nx=2e3+5;

int n, m, w[nx], s[nx], x, l[nx], res;
priority_queue<int, vector<int>, greater<int>> pq;
queue<int> q;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>m;
    for (int i=1; i<=n; i++) cin>>s[i], pq.push(i);
    for (int i=1; i<=m; i++) cin>>w[i];
    for (int i=1; i<=2*m; i++)
    {
        cin>>x;
        if (x<0) pq.push(l[-x]);
        else
        {
            if (!pq.empty())
            {
                l[x]=pq.top();
                pq.pop();
                res+=s[l[x]]*w[x];
            }
            else q.push(x);
        }
        while (!pq.empty()&&!q.empty())
        {
            auto t=pq.top();
            pq.pop();
            res+=s[t]*w[q.front()];
            l[q.front()]=t;
            q.pop();
        }
    }
    cout<<res;
}
# 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 0 ms 348 KB Output is correct
5 Correct 0 ms 348 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 1 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 0 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 604 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 1 ms 500 KB Output is correct
19 Correct 1 ms 344 KB Output is correct
20 Correct 1 ms 348 KB Output is correct