Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1069. Mostrar todas as postagens
Mostrando postagens com marcador 1069. Mostrar todas as postagens

terça-feira, 15 de dezembro de 2020

URI (BEECROWD) - 1069 - Estruturas e Bibliotecas - Diamantes e Areia - C

Hoje soluciono um problema da categoria Estruturas e Bibliotecas! Esse problema é bem legal e fácil de resolver! Confira!

Plataforma: URI (BEECROWD)

Problema1069

Enunciado:

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.

Linguagem: C

Solução:

#include <stdio.h>

int main() {
    
    int n, diamantes, indice, left, right;
    char *palavra = (char *) malloc(sizeof(char) * 128);
    
    scanf("%i ", &n);
    
    while (n--) {
        
        indice = 0;
        left = 0;
        right = 0;
        
        scanf("%s", palavra);
        
        while (palavra[indice] != '\0') {
            
            if (palavra[indice] == '<')
                left++;
                
            if (palavra[indice] == '>' && left > right)
                right++;
            
            indice++;
        }
        
        if (left <= right)
            printf("%i\n", left);
        else 
            printf("%i\n", right);
    }
    
    return 0;
}

URI - 1069 - Estruturas e Bibliotecas - Diamantes e Areia - C++

Plataforma: URI

Problema1069

Enunciado:

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.

Linguagem: C++

Solução:

#include <iostream>

using namespace std;

int main() {
    
    int n, diamantes, indice, left, right;
    string palavra;
    
    cin >> n;
    cin.ignore();
    
    while (n--) {
        
        indice = 0;
        left = 0;
        right = 0;
        
        getline(cin, palavra);
        
        while (palavra[indice] != '\0') {
            
            if (palavra[indice] == '<')
                left++;
                
            if (palavra[indice] == '>' && left > right)
                right++;
            
            indice++;
        }
        
        if (left <= right)
            cout << left << endl;
        else 
            cout << right << endl;
    }
    
    return 0;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas