TEMA

wrong answer 20%/runtime error C++

Gabriel Euripedes Vieria Correa preguntado 2 months ago

I know i should use long long int, but when i use long int, the input exemples work other than the ones which have a number too big, and uri gives me 40% wrong answer. If i add a 'int' before the 'i' in the loop, i get 20% error. Then, when i use long long int, nothing works. Not even the inputs that worked with long int, nothing. And i get runtime error too instead of wrong answer, even though the only thing i changed was adding another 'long' to the variable... This is way too confusing...

include

using namespace std;

int main() {

long long int N, i, tot =0, num =0, aux=0, carneiros=0;

cin >> N;

long long int X[N], B[N];

for(i=0; i < N; i++) {
    cin >> X[i];
    tot+=X[i];
    B[i] = X[i];
}

while(i >= 0 and i < N) {

    if(X[i] == B[i]) { num++; }
    aux = X[i];

    if(X[i] > 0) { X[i] = X[i] - 1; carneiros++;}

    if(aux % 2 ==0) { i--; if(i < 0){break;} }
    else if(aux % 2!= 0) { i++; if(i == N){break;} }

}

cout << num << " " << tot - carneiros << endl;

}

Recuerda no enviar soluciones. Tu mensaje puede ser revisado por nuestros moderadores.

  • Gabriel Euripedes Vieria Correa respondido 2 months ago

    Não precisa do return 0 no uri e em alguns compiladores. E eu coloquei o codigo errado aqui no forum, no meu codigo original tinha colocado o "int i" dentro do for, então resetava automaticamente pra i=0 quando passava pro while. Mas mesmo assim não funcionava... Acho que o problema é na leitura, pois o codigo não esta lendo todos os numeros. Mas não sei pq... Heh?! Tentei colocar o codigo no uri pra ver se é meu compilador que estava dando errado, e realmente funcionou agora. Mas no meu compilador ainda não esta funcionando.

  • Esrael Sousa (IFCE - TIANGUA) respondido 2 months ago

    Algumas coisas que notei:

    Faltou o return 0; da função main.

    Seu loop while não é executado, pois quando você termina a leitura o i=N, então você deve setar i=0.

    Acho que consertando isso passa. Mas você pode economizar mais recurso, deixando apenas carneiros e tot como long long int e as outras variáveis como int