Jump to content
Fórum Script Brasil
  • 1

Código - OBI 2015


Gabrzz

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...