Submission #372554

# Submission time Handle Problem Language Result Execution time Memory
372554 2021-02-28T19:35:53 Z AlexRex0 Garage (IOI09_garage) C++14
100 / 100
1 ms 376 KB
#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 time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 376 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 364 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Correct 1 ms 364 KB Output is correct
14 Correct 1 ms 364 KB Output is correct
15 Correct 1 ms 364 KB Output is correct
16 Correct 1 ms 364 KB Output is correct
17 Correct 1 ms 364 KB Output is correct
18 Correct 1 ms 364 KB Output is correct
19 Correct 1 ms 364 KB Output is correct
20 Correct 1 ms 364 KB Output is correct