Olá pessoal, sou o Filipe Névola, este blog foi muito ativo durante 2009 enquanto eu fazia universidade,
hoje em dia estou ativo no Twitter @FilipeNevola e voltando a escrever posts agora no meu perfil do Medium (29/05/2016).

[ 25/05/2009 ] 0

Quermesse - SPOJ - 811 QUERM

Categoria: Ad hoc Simples

Resumo: Dados vários números de ingresso, determinar qual ingresso é igual a posição de entrada na festa.

Explicação: O enunciado é bastante simples, o que devemos fazer é descobrir qual a primeira pessoa que irá entrar na quermesse e ganhar o prêmio.
Para isso ela deve ter o número de ingresso igual a posição que ela ta entrando na quermesse, ou seja, se ela é a terceira pessoa a entrar o ingresso dela deve ser o 3.
Note que apenas a primeira pessoa que atende a esta condição recebe o prêmio.
Observação: São vários casos de teste então até que o número de pessoas seja 0 continue lendo.

Vamos ao código:

#include <stdio.h> //Biblioteca padrão de entrada e saída

int main(){
/**declaração de variáveis**/
//conta o número do teste atual
int contador_testes=0;
//total de pessoas que irão entrar
int total_pessoas;
//número do ingresso da pessoa que entrou
int numero_ingresso;
//número da entrada, ex: essa pessoa é a 10ª a entrar
int numero_entrou;
//primeiro ingresso que tinha número igual ao da entrada da pessoa
int resposta;
//controle para saber se alguém já ganhou
bool temvencedor;

/**entrada de dados e processamento**/
//enquanto tem dados a serem lidos e total de pessoas é diferente de 0
//lê o restante dos dados
while( scanf("%d", &total_pessoas)==1 && total_pessoas!=0 ){
//ninguém ganhou ainda neste caso de teste
temvencedor = false;
//para numero_entrou de 1 até total_pessoas
for( numero_entrou = 1 ; numero_entrou <= total_pessoas ; ++numero_entrou ){

//lê o número do ingresso da pessoa que acabou de entrar
scanf("%d", &numero_ingresso);

//se o número do ingresso dela é igual ao número de pessoas que entraram
//E ninguém ganhou ainda
if( numero_ingresso == numero_entrou && temvencedor == false){
//ela é a vencedora então guarda seu número na variável resposta
resposta = numero_ingresso;
//alguém ganhou
temvencedor = true;
}
}

/**saída de dados a cada caso de teste**/
//escreve contador_testes e depois a resposta
printf("Teste %d\n%d\n\n", ++contador_testes, resposta);
}
}
Alguma dúvida? Pergunte através dos comentários! Quermesse - SPOJ - 811 QUERM

Novo Comentário