Submission #310932

#TimeUsernameProblemLanguageResultExecution timeMemory
310932BenmathGarage (IOI09_garage)C++14
100 / 100
4 ms512 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    long long int a[n+1];
    long long int b[m+1];
    int vis[n+1];
    for(int i=1;i<=n;i++){
        cin>>a[i];
        vis[i]=0;
    }
    int d1[m+1];
    for(int i=1;i<=m;i++){
        cin>>b[i];
        d1[i]=-1;
    }
    
    long long int sum=0;
    queue<long long int >q;
    for(int i=0;i<(2*m);i++){
        int x;
        cin>>x;
        if(x>0){
            q.push(x);
            
        }else{
            x=abs(x);
            vis[d1[x]]--;
            d1[x]=-1;
        }
        if(!q.empty()){
            int a1=q.front();
            int brojac=0;
            for(int j=1;j<=n;j++){
                if(vis[j]==0 and brojac==0){
                    brojac++;
                    sum=sum+a[j]*b[a1];
                    vis[j]++;
                    d1[a1]=j;
                }
            }
            if(brojac!=0){
            q.pop();
            }
        }
    }
    cout<<sum;
}
#Verdict Execution timeMemoryGrader output
Fetching results...