Ir para conteúdo
Fórum Script Brasil
  • 1

Código - OBI 2015


Gabrzz

Pergunta

No site NEPS, eu tentei fazer o seguinte exercício:https://neps.academy/br/exercise/47, porém, não mesmo com um código que deveria estar funcionando, o site reconhece falhas, mas não sei o que seria.

Segue o código:

#include<iostream>
using namespace std;

int main(){
    
    int size, nm[size];
    cin >> size;
    
    for(int i=0; i<size; i++) cin >> nm[i];
    
    int res=0;
    for(int j=0; j+2<size; j++)
        if(nm[j]==1 && nm[j+1]==0 && nm[j+2]==0) res++;
    
    cout << res;
    
    return 0;
}

 

imagem_2022-05-25_202330630.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá Amigo, não sei se já conseguiu resolver seu problema, mas hoje eu estava fazendo uns exercícios do neps e me deparei com este problema. Não sabia nem onde começar, mas com seu código consegui resolver, obg.

Meu código

#include <iostream>

using namespace std;

int main(){
    // Seu código vai aqui
    int N,qtd=0;
    cin>>N;
    int n[N];
    for(int i=0;i<N;i++){
        cin>>n[i];
    }
    for(int j=0;j<N;j++){
        if(n[j]==1&&n[j+1]==0&&n[j+2]==0&&j<N-2){
            qtd++;
        }
    }
    cout<<qtd<<endl;
    return 0;
}

 

O erro estava que em um exemplo, Se N fosse vinte e você colocasse as sequências:

1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0

ele dava 7 ao invés de 6, o erro era que ele só podia ler sequências de 3 números, quando chegasse em 2 números é impossível a sequência dar 100.

Link para o comentário
Compartilhar em outros sites

  • 0

Então eu tentei resolver o problema e meu código (que quando eu texto funciona normalmente) não é aceito no NEPS
Segue código
 

#include <iostream>
using namespace std;

int main() {
  int n, q100=0;
  cin>>n;
  int v[n];
  for (int i =0; i<n; i++){
    cin >> v[i];
  }
   for (int i =0; i<n; i++){
    if (v[i]==1&&v[i+1]==0&&v[i+2]==0){
      q100++;
    }
  }
  cout << q100;
}

Quando ele é enviado ao NEPS o site responde que todas as tentativas de saída que deveriam ser zero resultam com 1

Link para o comentário
Compartilhar em outros sites

  • 0
Em 15/07/2023 em 02:14, Drielle M Peixoto disse:

Então eu tentei resolver o problema e meu código (que quando eu texto funciona normalmente) não é aceito no NEPS
Segue código
 

#include <iostream>
using namespace std;

int main() {
  int n, q100=0;
  cin>>n;
  int v[n];
  for (int i =0; i<n; i++){
    cin >> v[i];
  }
   for (int i =0; i<n; i++){
    if (v[i]==1&&v[i+1]==0&&v[i+2]==0){
      q100++;
    }
  }
  cout << q100;
}

Quando ele é enviado ao NEPS o site responde que todas as tentativas de saída que deveriam ser zero resultam com 1

Primeiro você está definindo um array de tamanho imprevisível, porque está usando size antes de inicializá-lo:

    int size, nm[size];
    cin >> size;

 

Segundo você não pode fazer isto se a condição do loop for i<n:

if (v[i]==1&&v[i+1]==0&&v[i+2]==0){

Pois quando i = n-1 o teu programa tentará acessar v[n-1+2] que é fora dos limites do array, o que pode resultar em um valor indefinido (provavelmente zero) ou em uma falha de segmentação.

Por causa dos erros no gerenciamento de memória, a saída do seu programa é imprevisível, foi inclusive sorte não ter crashado quando você enviou a solução.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...