제출 #1225052

#제출 시각아이디문제언어결과실행 시간메모리
1225052lukasuliashviliGarage (IOI09_garage)C++20
75 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define fs first #define sc second #define pb push_back #define rep(i,a,b) for(int i=a; i<=b; i++) const int N=2000005; int t[2005],w[2005],a[200]; signed main(){ int n,m; cin>>n>>m; rep(i,1,n) cin>>a[i]; rep(i,1,m) cin>>w[i]; rep(i,1,2*m) cin>>t[i]; vector<int> fre(n); map<int,int> pos; queue<int> q; int ans=0; for(int i=1;i<=2*m;i++){ if(t[i]<0){ int car=-t[i]; int p=pos[car]; fre[p]=0; if(!q.empty()){ int newcar=q.front();q.pop(); fre[p]=1; pos[newcar]=p; ans+=a[p+1]*w[newcar]; } }else{ int car=t[i]; bool placed=false; for(int j=0;j<n;j++){ if(fre[j]==0){ fre[j]=1; pos[car]=j; ans+=a[j+1]*w[car]; placed=true; break; } } if(!placed) q.push(car); } } cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...