Submission #758912

#TimeUsernameProblemLanguageResultExecution timeMemory
758912akarinkofGarage (IOI09_garage)C++14
5 / 100
2 ms468 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> P1; typedef pair<pair<ll,ll>,ll> P3; typedef pair<string,ll> Ps; typedef pair<pair<ll,ll>,pair<ll,ll> > P4; #define rep(i,n) for(ll i=0;i<n;++i) #define rrep(i,n) for(ll i=n-1;i>=0;--i) #define FOR(i,s,e) for(ll i=s;i<=e;++i) #define FFOR(i,s,e) for(ll i=s;i>=e;--i) #define yesno(flg) if(flg){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;} #define ALL(a) (a).begin(),(a).end() #define mp make_pair #define pb push_back #define vl vector<ll> #define vs vector<string> #define so(a) sort(a.begin(),a.end()) #define fi first #define se second #define print(a) cout<<a<<endl #define ssize(a) (ll)(a.size()) #define MAX_N 1002 #define i197 1000000007 template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; } template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; } const ll INF=1000000000000000001; struct edge { int to, cost; }; struct pos{ // 1 変数を入れる; ll t; ll x,y; set<ll> st; }; int dx[4] = { 1, 0, -1, 0}; int dy[4] = { 0, 1, 0, -1}; int dd[5] = { 0, 1, 0, -1, 0}; int main(){ ll n,m; cin>>n>>m; vl r(n); rep(i,n)cin>>r[i]; vl w(m+1); rep(i,m)cin>>w[i+1]; priority_queue<ll,vector<ll>,greater<ll> > que; rep(i,n)que.push(i); vl v(n); ll ans=0; rep(i,2*m){ ll c; cin>>c; if(c>0){ ans+=r[que.top()]*w[c]; v[c]=que.top(); que.pop(); }else{ que.push(v[abs(c)]); } } print(ans); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...