Submission #614113

#TimeUsernameProblemLanguageResultExecution timeMemory
614113Icebear16Garage (IOI09_garage)C++14
40 / 100
2 ms360 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define INF 1e18//change to const int INF=1e18 if causing problem const ll MOD=998244353; const ll alt=1e10; const ll inf=1e9+7;//Precalc is not a bad idea //#define int ll #define pb push_back #define pf push_front #define mp make_pair #define fi first #define se second #define mod(a) (a+inf)%inf #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define sz(a) a.size() //#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") /* run this program using the console pauser or add your own getch, system("pause") or input loop*/ int32_t main(){ std::ios_base::sync_with_stdio(false); // cin.tie(0)->sync_with_stdio(0); int n,m; cin>>n>>m; set<int> s; map<int,int> mm; map<int,int> M; vector<int> a(n); vector<int> b(m); queue<int> q; queue<int> qq; s.clear(),mm.clear(),M.clear(); for(int i=0;i<n;i++){ cin>>a[i]; M[i]=a[i]; s.insert(i); } for(int i=0;i<m;i++){ cin>>b[i]; } int ans=0; for(int l=0;l<2*m;l++){ int x; cin>>x; if(x>0){ int y=*s.begin(); ans+=((M[y])*b[x-1]); mm[x]=y; s.erase(y); // M[y]=0; }else{ x=abs(x); int y=mm[x]; s.insert(y); // M[y]= } } cout<<ans<<endl; return 0; } //Icebear16
#Verdict Execution timeMemoryGrader output
Fetching results...