ETAPA 2

Desafio 1 – Cala boca e come

Enunciado
Resolução

#include <stdio.h>
#include <string.h>

void resolucao() {
  int erro = 0, erroMax = 0;
  char palavraCript[50];
  scanf("%s", palavraCript);

  char teste[strlen(palavraCript)];
  scanf("%s", teste);

  erroMax = 1 + (strlen(palavraCript) - strlen(teste)); // tamanho da escada

  for (int k = 0; k < erroMax; k++) {
    for (int i = 0; i < strlen(teste); i++) {
      if (palavraCript[i + k] == teste[i]) {
        erro++;
        break;
      }
    }
  }

  if (erro == erroMax)
    printf("Nu\n");
  else
    printf("Oh trem bao ser brasileiro, agora bora comer que o estomago esta "
           "estalajadando de fome\n");
}

int main(void) {
  int casos_testes;
  scanf("%d", &casos_testes);

  while (casos_testes > 0) {
    resolucao();
    casos_testes--;
  }

  return 0;
}

Desafio 2 – Acarajé

Enunciado
Resolução

#include <stdio.h>
#include <stdbool.h>

int resultado = 0;
char digitos[] = "3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067";

void comparaPi(char *cod)
{

    int seq = 0;
    int seqSize = -1;

    int i = 0;
    int j = 0;

    while (i < 200)
    {

        if (cod[i] == '\0')
        {
            if (seq > seqSize)
            {
                seqSize = seq;
            }
            break;
        }
        if (seq == 100)
        {
            seqSize = seq;
            break;
        }
        if (cod[i] == digitos[j])
        {
            j++;
            seq++;
        }
        else
        {
            j = 0;
            if (seq > 0)
            {
                if (seq > seqSize)
                {
                    seqSize = seq;
                }
                i--;
            }
            seq = 0;
        }
        i++;
    }

    if (seqSize == -1)
    {
        resultado = 0;
    }
    else
    {
        resultado = (digitos[0] - '0') + (digitos[seqSize - 1] - '0');
    }
}

int main()
{

    int n;
    scanf("%d", &n);

    for (int i = 0; i < n; i++)
    {
        int tempo = 0;
        char codigo[201];
        scanf("%s %d", codigo, &tempo);

        comparaPi(codigo);

        if (resultado == tempo)
        {
            printf("aqui estao seus acarajes quentinhos\n");
        }
        else if (resultado < tempo)
        {
            printf("oh nao os acarajes queimaram\n");
        }
        else
        {
            printf("ta mole o.o\n");
        }
    }

    return 0;
}

Desafio 3 – Eu to Saudando a Mandioca

Enunciado
Resolução

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int ehAnagrama (char* anagrama, char* chave) {
    int igual = 0;
    char aux;
    //para essa funcao iremos colocar as strings em ordem alfabetica e, entao iremos comparar elas
    for (int i = 0; i < strlen(anagrama) - 1; i++){
        for (int j = i+1; j < strlen(anagrama); j++){
            if (anagrama[i] > anagrama[j]){
                aux = anagrama[i];
                anagrama[i] = anagrama[j];
                anagrama[j] = aux;
            }
        }
    }

    for (int i = 0; i < strlen(anagrama); i++){
        if (anagrama[i] == chave[i]) igual++;
    }

    if (strcmp(chave, "aabcimno") == 0 && igual == 8) return 1;
    else if (strcmp(chave, "aopt") == 0 && igual == 4) return 1;
    else return 0;
}

int main (){
    char* anagrama = (char*) malloc (sizeof(char)*80);
    char* pato = (char*) malloc (sizeof(char)*30);
    pato = "aopt"; //"pato" com as letras em ordem alfabetica
    char* manicoba = (char*) malloc (sizeof(char)*30);
    manicoba = "aabcimno"; //"manicoba" com as letras em ordem alfabetica
    int qtd, aux;

    scanf ("%s %d", anagrama, &qtd);

    while (strcmp(anagrama, "mandioca") != 0){
        if (ehAnagrama(anagrama, pato) == 0 && ehAnagrama(anagrama, manicoba) == 0){
            printf("nao faco ideia do que ele quer, pode mandar uma batata frita\n");
        } else if (ehAnagrama(anagrama, pato) == 1 && ehAnagrama(anagrama, manicoba) == 0){
            printf("AOPA, manda %d pato(s) no tucupi que o povo ta com fome\n", qtd);
        } else if (ehAnagrama(anagrama, pato) == 0 && ehAnagrama(anagrama, manicoba) == 1){
            printf("AOPA, manda %d manicoba(s) que o povo ta com fome\n", qtd);
        }
        scanf ("%s %d", anagrama, &qtd);
    }

    printf("Pedido finalizado\n");

    return 0;
}

Desafio 4 – MasterPET

Enunciado

Resolução

#include <string.h>
#include <stdio.h>

int main(){
    char expressao[1001];
    int N, tam, resposta, cauda;

    scanf("%d\n", &N);
    
    for(int k = 0; k < N; ++k){
        scanf("%s", expressao);

        resposta = 0;
        cauda = 0;
        tam = strlen(expressao);
        for(int i = 0; i < tam; ++i){
            if(expressao[i] == 'X'){
                ++cauda;
            }else if(expressao[i] == 'D' && cauda > 0){
                --cauda;
                ++resposta;
            }
        }

        printf("%d\n", resposta);
    }

    return 0;
}

Desafio 5 – A Vingança do Shaolin

Enunciado

Resolução

#include <stdio.h>
#include <stdbool.h>


bool scores(int *nums, bool a_turn, int score_a,int score_b, int i,int j)
{
    if(i>j)
        return score_a>=score_b;
      
    if(a_turn)
        return scores(nums,false,score_a+nums[i],score_b,i+1,j)||scores(nums,false,score_a+nums[j],score_b,i,j-1);
        
    
         return scores(nums,true,score_a,score_b+nums[i],i+1,j)&&scores(nums,true,score_a,score_b+nums[j],i,j-1);
    
    
}

int main(void) {
  int casos_testes;
  scanf("%d", &casos_testes);

  while(casos_testes>0){
  int tam;
  scanf("%d", &tam);

  int vetor[tam];
  for(int i=0;i<tam;i++) scanf("%d", &vetor[i]);
  
  if(scores(vetor,true,0,0,0,tam-1))
    printf("Chama os bombeiros que o PET tá pegando fogo, bora pra cima porque foguete nao tem re\n");
  else 
    printf("Eita, perdi, vou desmaiar, mas ainda tem o PVT no bandeco\n");
  
  casos_testes--;
  }
  
  return 0;
}

Leave a Reply

Your email address will not be published. Required fields are marked *