Submission #879615

#TimeUsernameProblemLanguageResultExecution timeMemory
879615amin_2008Garage (IOI09_garage)C++17
100 / 100
1 ms604 KiB
/* author: amin */ #pragma GCC optimize ("O3") #include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0) #define vi vector<int>v #define vs vector<string>v #define vc vector<char>v #define ll long long #define vl vector<ll>v #define pb push_back #define ins insert #define ts to_string #define st stoi #define ull unsigned long long #define endl '\n' using namespace std; int p[101], w[2001]; set<int> s; map<int,int> mp; deque<int> d; const int MOD = 1e9 + 7; void solve() { int n, m; cin >> n >> m; for(int i = 1; i <= n; i++) s.ins(i); for(int i = 1; i <= n; i++) cin >> p[i]; for(int i = 1; i <= m; i++) cin >> w[i]; int res = 0; for(int i = 1; i <= 2 * m; i++) { int car; cin >> car; if (car > 0) { if (!s.empty()) { int pp = *s.begin(); res += w[car] * p[pp]; s.erase(s.begin()); mp[car] = pp; } else { d.push_back(car); } } else { int pp = mp[-car]; if (!d.empty()) { int pc = d[0]; res += w[pc] * p[pp]; mp[pc] = pp; d.pop_front(); } else { s.ins(pp); } } } cout << res << endl; } int main () { ios; int t; //cin >> t; t = 1; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...