Submission #799624

#TimeUsernameProblemLanguageResultExecution timeMemory
799624I_Love_EliskaM_Garage (IOI09_garage)C++14
100 / 100
1 ms368 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define forn(i,n) for(int i=0;i<n;++i) #define pi pair<int,int> #define f first #define s second #define pb push_back #define all(x) x.begin(),x.end() #define vii(a,n) vector<int>a(n);forn(i,n)cin>>a[i]; const int inf=1e18; void solve() { int n,m; cin>>n>>m; vii(t,n); vii(w,m); vector<int> pos(m,-1); set<int> s; forn(i,n) s.insert(i); int ans=0; queue<int> q; forn(i,2*m) { int x; cin>>x; if (x>0) { --x; if (s.size()) { auto y=*s.begin(); s.erase(s.begin()); pos[x]=y; ans+=w[x]*t[y]; } else { q.push(x); } } else { x*=-1; --x; s.insert(pos[x]); while (q.size() && s.size()) { auto x=q.front(); q.pop(); auto y=*s.begin(); s.erase(s.begin()); pos[x]=y; ans+=w[x]*t[y]; } } } cout<<ans<<'\n'; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...