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;
}