Pesquisar este blog

Livros Recomendados

quinta-feira, 18 de março de 2021

URI (BEECROWD) - 2663 - Fase - Iniciante - C e C++

Plataforma: URI (BEECROWD)

Problema2663

Enunciado:

Em diversas competições acadêmicas, como a Olimpíada Brasileira de Informática (OBI), uma certa quantidade de competidores se classifica de uma fase para a fase seguinte, garantindo uma das vagas disponíveis. Entretanto, normalmente essa quantidade é variável, pois dada uma certa quantidade mínima de classificados, é frequente que haja empate na última vaga de classificação. Neste caso, é comum que todos os competidores empatados na última colocação se classifiquem.

Sua tarefa é ajudar a calcular o número de competidores classificados para a próxima fase. Você receberá uma lista de pontuações obtidas pelos competidores e o número mínimo de vagas para a fase seguinte e você deve decidir quantos competidores de fato vão se classificar.

Linguagens: C e C++


Solução:

Código em C:

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

int compara(const void *a, const void *b) {
   return (*(int *) b - *(int *) a);
}

int main() {
    
    int n, k, i = 0;
    
    scanf("%i %i", &n, &k);

    int comp[n];
    
    while (i < n)
        scanf("%i", &comp[i++]);
        
    qsort(comp, n, sizeof(int), compara);
    
    for (i = k-1; i < n && comp[i] == comp[k-1]; i++);
    
    printf("%i\n", i);

    return 0;
}

Código em C++:

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

using namespace std;

bool compara(int a, int b) {
    return (a > b);
}

int main() {
    
    int n, k, valor, i = 0;
    vector<int> comp;
    
    cin >> n >> k;
    
    while (i++ < n) {
        cin >> valor;
        comp.push_back(valor);
    }
        
    sort(comp.begin(), comp.end(), compara);
    
    for (i = k-1; i < comp.size() && comp.at(i) == comp.at(k-1); i++);
    
    cout << i << endl;

    return 0;
}

Nenhum comentário:

Postar um comentário

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