Submission #372554

#TimeUsernameProblemLanguageResultExecution timeMemory
372554AlexRex0Garage (IOI09_garage)C++14
100 / 100
1 ms376 KiB
#include <bits/stdc++.h> using namespace std; int n, m, cont, res; int c[2002]; int p[102]; int ocupado[102]; queue<int> cola; void quitar(int x){ int ayuda = x * -1; for(int i = 1; i <= n; ++i){ if(ocupado[i] == ayuda){ ocupado[i] = 0; break; } } if(cont == n){ if(cola.size() > 0){ int aux = cola.front(); for(int i = 1; i <= n; ++i){ if(ocupado[i] == 0){ ocupado[i] = aux; res+= p[i] * c[aux]; break; } } cola.pop(); }else{ cont--; } }else{ cont--; } } void poner(int x){ if(cont < n){ for(int i = 1; i <= n; ++i){ if(ocupado[i] == 0){ ocupado[i] = x; res+= p[i] * c[x]; cont++; break; } } }else{ cola.push(x); } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 1; i <= n; ++i){ cin >> p[i]; } for(int i = 1; i <= m; ++i){ cin >> c[i]; } int q; for(int i = 1; i <= m * 2; ++i){ cin >> q; if(q < 0){ quitar(q); }else{ poner(q); } } while(!cola.empty()){ int aux = cola.front(); for(int i = 1; i <= n; ++i){ if(ocupado[i] == 0){ ocupado[i] = aux; res+= p[i] * c[aux]; break; } } cola.pop(); } cout << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...