Solução Informática - Nível Iniciante - Semana 27

Solução por Anita Ramos

Esse problema exige o estabelecimento de uma lógica simples de buscar o máximo até um limite dado na entrada com o auxílio da função sort() para garantir esse máximo.

Iniciando a programação então, depois de declarar a biblioteca e as variáveis e ler o N, lemos o X, Y e Z, armazenando-os em um vetor de apenas 3 posições. Posteriormente, ordenamos esse vetor e utilizamos o comando for() para passar pelos 3 valores e subtrair do N (valor total) se esse ainda for maior ou igual a 0. Junto a subtração do valor, soma-se 1 na resposta final res. Por fim, imprimi-se essa resposta e o programa retorna a 0.

Segue o código comentado para melhor compreensão da solução:


#include<bits/stdc++.h> //biblioteca utilizada
using namespace std;
int main()
{
int N, v[3], res=0; //declaração de variáveis
scanf("%d", &N); //leitura do 'N'
scanf("%d %d %d", &v[0], &v[1], &v[2]); //leitura do 'X', 'Y' e 'Z'
sort(v,v+3); //ordenação crescente
for(int i=0; i<3; i++) //loop para checar todos os 3 valores X,Y,Z já ordenados
{
N-=v[i]; //subtrai o valor da posição 'i' no vetor 'v[]' de 'N' (total)
if(N>=0)res++; //se o 'N' ainda não é menor que 0, acrescenta-se 1 na resposta final 'res'
}
printf("%d", res); //imprime a resposta 'res'
return 0; //retorna a 0
}

view raw

Poquemao.cpp

hosted with ❤ by GitHub