Jump to content
paulopoxoreo1234@gmail.com

Estrutura de Dados (como corrigir o erro desse programa em linguagem C)

Recommended Posts

Diamantes e Areia: João está trabalhando em uma mina, tentando retirar o máximo que consegue de diamantes "<>". Ele deve excluir todas as particulas de areia "." do processo e a cada retirada de diamante, novos diamantes poderão se formar. Se ele tem como uma entrada .<...<<..>>....>....>>>., três diamantes são formados. O primeiro é retirado de <..>, resultando  .<...<>....>....>>>. Em seguida o segundo diamante é retirado, restando .<.......>....>>>. O terceiro diamante é então retirado, restando no final .....>>>., sem possibilidade de extração de novo diamante.

Entrada

Deve ser lido um valor inteiro N que representa a quantidade de casos de teste. Cada linha a seguir é um caso de teste que contém até 1000 caracteres, incluindo "<,>, ."

Saída

Você deve imprimir a quantidade de diamantes possíveis de serem extraídos em cada caso de entrada.

OBS – Deve ser utilizado pilha.

 

Eu fiz o codigo mas não esta dando certo. Quando eu coloco >< ele também conta como um diamante

Se alguém puder me ajudar. 


 
#include <cstdio>
#include <cstring>
int main ()
{
  int q, w, guaxima, greater, liryus;
  char lista[1001];

  scanf("%d", &q);

  while (q--) 
  {
    scanf("%s", lista);
    guaxima = greater = liryus =  0;
    for (w=0; w<strlen(lista); w++) 
    {
      if (lista[w] == '<') 
      {
        guaxima++;
      } 
      else 
        if (lista[w] == '>') 
        {
          if (guaxima > 0) 
          {
            liryus++;
            guaxima--;
          }
        }
    }
    printf("%d\n", liryus);
  }
  return 32768;
}
#include <cstdio>
#include <cstring>
int main ()
{
  int q, w, guaxima, greater, liryus;
  char lista[1001];

  scanf("%d", &q);

  while (q--) 
  {
    scanf("%s", lista);
    guaxima = greater = liryus =  0;
    for (w=0; w<strlen(lista); w++) 
    {
      if (lista[w] == '<') 
      {
        guaxima++;
      } 
      else 
        if (lista[w] == '>') 
        {
          if (guaxima > 0) 
          {
            liryus++;
            guaxima--;
          }
        }
    }
    printf("%d\n", liryus);
  }
  return 32768;
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.