Pesquisar este blog

Livros Recomendados

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

sábado, 13 de março de 2021

URI (BEECROWD) - 2479 - Ordenando a Lista de Crianças do Papai Noel - Ad-Hoc - C e C++

Fala, pessoal! Novo exercício da categoria Ad-Hoc agora! Confiram e comparem com as respostas de vocês!

Plataforma: URI (BEECROWD)

Problema2479

Enunciado:

Papai Noel está nos preparativos finais para a entrega dos presentes para as crianças do mundo todo pois o natal está chegando mais uma vez. Olhando suas novas listas de crianças que irão ganhar presentes neste ano ele percebeu que o duende estagiário (que havia ficado responsável por fazer as listas) não havia colocado os nomes em ordem alfabética. 

Como o Papai Noel é um homem muito organizado ele deseja que cada lista de crianças possua, no seu final, o total de crianças que foram bem comportadas neste ano e um total das que não foram. Assim ele pode comparar a quantidade de crianças que se comportam este ano com as dos anos anteriores.

Para ajudar o bom velhinho, seu dever é criar um programa que leia todos os nomes da lista e imprima os mesmos nomes em ordem alfabética. No final da lista, você deve imprimir o total de crianças que foram e não foram comportadas neste ano.

Linguagens: C e C++

Solução:

Código em C:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compara(const void *p1, const void *p2) {
    return strcmp(p1, p2);
}
int main() {
    int n, i, comportados = 0;
    char sinal;
    char nomes[100][21];
    scanf("%d ", &n);
    for (i = 0; i < n; i++) {
        scanf("%c %s ", &sinal, nomes[i]);
        if (sinal == '+')
            comportados++;
    }
    qsort(nomes, n, 21, compara);
    for (i = 0; i < n; i++)
        printf("%s\n", nomes[i]);
    printf("Se comportaram: %d | Nao se comportaram: %d\n", comportados, n - comportados);
    return 0;
}

Código em C++:

#include <algorithm>
#include <vector>
#include <iostream>

using namespace std;

int main() {
    int n, i, comportados = 0;
    char sinal;
    string str;
    vector<string> nomes;
    cin >> n;
    cin.ignore();
    for (i = 0; i < n; i++) {
        cin >> sinal >> str;
        if (sinal == '+')
            comportados++;
        nomes.push_back(str);
    }
    sort(nomes.begin(), nomes.end());
    for (i = 0; i < nomes.size(); i++)
        cout << nomes.at(i) << endl;
    cout << "Se comportaram: " << comportados << " | Nao se comportaram: " << n - comportados << 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