제출 #943319

#제출 시각아이디문제언어결과실행 시간메모리
943319maxFedorchukGarage (IOI09_garage)C++17
0 / 100
1 ms2396 KiB
#include <bits/stdc++.h>
using namespace std;

const long long MX=2e5+10;

int msq[MX],w[MX],cs[MX],ans=0;

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

    priority_queue < pair < int , int > , vector < pair < int , int > > , greater < pair < int , int > > > qp;

    int n,m;
    cin>>n>>m;

    for(int i=1;i<=n;i++)
    {
        cin>>cs[i];
        qp.push({cs[i],i});
    }

    for(int i=1;i<=m;i++)
    {
        cin>>w[i];
    }

    queue < int > qm;
    for(int i=1;i<=2*m;i++)
    {
        int a;
        cin>>a;

        if(a>0)
        {
            qm.push(a);
        }
        else
        {
            a=(-a);
            qp.push({cs[msq[a]],msq[a]});
            msq[a]=0;
        }

        if(!qp.empty() && !qm.empty())
        {
            int o1=qp.top().second;
            qp.pop();

            int o2=qm.front();
            qm.pop();

            ans+=w[o2]*cs[o1];
            msq[o2]=o1;
        }
    }

    cout<<ans<<"\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...