quarta-feira, 24 de outubro de 2018

URI PROBLEMA 2023 - A Última Criança Boa SOLUÇÃO EM C

URI Online Judge | 2023

A Última Criança Boa

Por M.C. Pinto, UNILA BR Brazil
Timelimit: 1
Papai Noel classifica todas as crianças do mundo em duas listas: uma das boazinhas e outra das malcriadas. Ele gostaria de saber qual das crianças do mundo é a última da lista de boazinhas, se usar a ordem alfabética. Para isso, ele pediu a todos seus elfos ajudantes que escrevessem os nomes das crianças boas em uma folha.
Entretanto, cada elfo escreveu os nomes de um jeito: maiúscula no início e minúsculas depois, todas maiúsculas, todas minúsculas, e todo tipo de combinação entre maiúsculas e minúsculas.
Papai Noel quer sua ajuda para, dada a lista de nome das crianças boas, dizer qual delas é a última.

Entrada

A entrada possui várias linhas. Em cada linha há o nome de uma criança boa. Nenhum elfo escreveu os nomes com acentos. O maior nome tem no máximo 80 caracteres. Não existem mais de 1000 crianças na lista. Todos os nomes são distintos. A lista de nomes termina com EOF.

Saída

A saída é dada em uma linha. O nome da criança que fica na última posição da lista deve ser mostrado. Mostre o nome exatamente como foi lido na entrada. Use a ordem alfabética dos nomes para ordenar, mas considere maiúsculas e minúsculas como iguais.



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

int strcicmp(char const *a, char const *b)
{
    for (;; a++, b++) {
        int d = tolower(*a) - tolower(*b);
        if (d != 0 || !*a)
            return d;
    }
}

int compare(const void *a, const void *b)
{
    const char *s1 = (const char *) a;
    const char *s2 = (const char *) b;

    return strcicmp(s2, s1);
}

int main()
{
    char kids[1000][101];
    int num_kids = 0;

    while (fgets(kids[num_kids], 101, stdin))
        ++num_kids;

    qsort(kids, num_kids, 101, compare);

    printf("%s", kids[0]);

    return 0;
}

Nenhum comentário:

Postar um comentário

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...