Pesquisar este blog

Livros Recomendados

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

domingo, 14 de fevereiro de 2021

URI (BEECROWD) - 1436 - Jogo do Tijolo - Matemática - C e C++

Buenas, pessoal! Exercício Jogo do Tijolo, da categoria Matemática! Esse é novidade. A solução até que é curta, mas exige conhecimento sobre ordenação para resolver e obter o aceite. Confiram na sequência. Aliás, a solução de vocês ficou diferente? Uma possibilidade seria implementar manualmente o algoritmo de ordenação, o que também é muito legal e ajuda no aprendizado! Talvez futuramente eu poste uma solução dessas aqui :) Abraços e bom proveito!

Plataforma: URI (BEECROWD)

Problema1436


Enunciado:

Há uma vila em Bangladesh, onde o jogo de tijolo é muito popular. Jogo de tijolo é um jogo de equipe. Cada equipe é constituída por um número ímpar de jogadores. O número de jogadores deve ser maior do que 1, mas não pode ser superior a 10. A idade de cada jogador deve estar entre 11(inclusive) e 20(inclusive). Não há dois jogadores com a mesma idade. Há um capitão para cada equipe.

A falta de comunicação entre dois jogadores depende da sua diferença de idade, ou seja, é maior se a diferença de idade for maior. Assim, eles selecionam o capitão de uma equipe de maneira que a quantidade de jogadores desta equipe que são mais jovens e mais velhos do que ele é igual.

As idades de todos os membros da equipe são fornecidas. Você tem que determinar a idade do capitão.


Linguagens: C e C++


Solução:

Nesse exercício era necessário ler "t" e os "t" valores "n", sendo que para cada valor "n" havia "n" idades, salvas no array idades. Em cada teste era necessário ordenar as idades e obter idades[j/2].


Código em C:

#include <stdio.h>
#include <stdlib.h>
int compara(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}
int main() {
    int t, n, i, j, idades[11], casos = 1;
    char linha[30];
    scanf("%d", &t);
    for (i = 0; i < t; i++) {
        scanf("%d", &n);
        for (j = 0; j < n; j++)
            scanf("%d", &idades[j]);
        qsort(idades, j, sizeof(int), compara);
        printf("Case %d: %d\n", casos++, idades[j/2]);
    }
    return 0;
}

Código em C++:


#include <iostream>
#include <cstdlib>
using namespace std;
int compara(const void *a, const void *b) {
    return ( *(int*)a - *(int*)b);
}
int main() {
    int t, n, i, j, idades[11], casos = 1;
    char linha[30];
    cin >> t;
    for (i = 0; i < t; i++) {
        cin >> n;
        for (j = 0; j < n; j++)
            cin >> idades[j];
        qsort(idades, j, sizeof(int), compara);
        cout << "Case " << casos++ << ": " << idades[j/2] << 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