TOPIC

Recebendo WA 20%

gsilva16 asked 6 years ago

Refiz o código, antes não batia com um dos últimos casos testes da competição, agora parece estar mais certo ainda, e to levando WA 40% em vez de 20

Um caso gigante que nem cabe no prompt da resultado 20000 quando deveria ser 40000, não sei se está estourando algum int, troquei pra long long algumas variáveis, mas não deu certo

Esse problema ta virando um pesadelo :(

Boa tarde, estou recebendo WA 20%, tentei todos casos testes postados no outro tópico, tentei achar alguma entrada que desse algum erro, mas não consegui encontrar uma que não batesse

Novo código:

#include <iostream>
#include <vector>
#include <set>
#include <string.h>

using namespace std;

int main(){

    int N, i, X, j, p, cont=0, espaco=0, C, P, Q, leitura, inicio;
    long long rua[10001];
    char movimento;

    while(cin >> C >> N){

    cont=0;

    vector<int> placas(10001);

    memset(rua,0,1001);

    while(N--){

    cin >> movimento;

    if (movimento == 'C'){
        cin >> P >> Q;
        if (placas[P] == 0){
            for(leitura=0;leitura<C;leitura++){
                inicio=leitura;
                espaco=0;
                if (rua[leitura] == 0){
                     while (rua[leitura] == 0){
                        espaco++;
                        leitura++;
                        if (espaco == Q || leitura >= C)
                            break;
                    }
                }
                if (espaco >= Q){
                    placas[P]++;
                    cont++;
                    for(j=inicio;j<leitura;j++){
                        rua[j]=P;
                    }
                    espaco=0;
                    break;
                }
            }
        }
    }
    else{
        cin >> P;
        if (placas[P] == 1){
            for(leitura=0;leitura<C;leitura++){
                if (rua[leitura] == P){
                    while (rua[leitura] == P){
                        rua[leitura] = 0;
                        leitura++;
                    }
                }
            }
            placas[P]--;
        }
    }

 //DEBUG

  // for(i=0;i<C;i++){
 //       cout << rua[i] << " ";
  //      }
 //     cout << endl;

    }

    cout << cont*10 << endl;

    placas.clear();

    }

return 0;
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • gsilva16 replied 6 years ago

    Refiz o código do zero, ficou melhor, mas o WA subiu, um dia eu consigo -_-

  • bergolho replied 6 years ago

    Oi Gustavo, teste com as entradas oficiais da competição: Estacionamento

    MOD