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

Ele está impedido - SPOJ - 2928 IMPEDIDO

Categoria: Ad hoc Simples

Resumo: Dados o número de atacantes e de defensores e suas respectivas posições, determinar se ocorre ou não impedimento.

Explicação: A regra de impedimento está explicada no enunciado e como a maioria de nós brasileiros conhecemos as regras de futebol não irei colocar aqui. Uma maneira de resolver isso é ordenando as posições dos jogadores, no código eu explico melhor como fazer isso.

Para resolver esse problema é bom saber:
Usar o qsort da stdlib.h (não sabe ? aprenda aqui)


Vamos ao código:
//Autor: Filipe Areias Névola
//Ano: 2008
//Licensa: Você pode usar e alterar, mas deve manter o Autor
#include <stdio.h> //Biblioteca padrão de entrada e saída
#include <stdlib.h> //Biblioteca onde se encontra o qsort

//Compare da qsort para inteiros
int compare (const void * a, const void * b){
return ( *(int*)a - *(int*)b );
}
//Parte principal do programa
int main(){
/**declarações**/
//número de atacantes, defensores
int a,d;
//iterador
int i;
//vetores para guardar as posições dos jogadores
int at[12],de[12];

/**entrada de dados e processamento**/
//lê número de atacantes e defensores
while(scanf("%d %d",&a,&d)==2 &&a){

//lê as posições dos atacantes
for(i=0;i<a;++i)
scanf("%d",&at[i]);

//lê as posições dos defensores
for(i=0;i<d;++i)
scanf("%d",&de[i]);

//ordena os atacantes, usando qsort
qsort(at,a,sizeof(int),compare);

//ordena os defensores, usando qsort
qsort(de,d,sizeof(int),compare);

/**saída dos dados**/
//Já que eles estão ordenado os primeiros no vetor
//são os mais próximos a linha de fundo do ataque
//então se o atacante mais avançado está mais perto
//da linha de fundo que o segundo defensor ele está
//impedido
if(at[0]<de[1]){
//imprime sim, está impedido
printf("Y\n");
}
else{
//imprime não, não está impedido
printf("N\n");
}
}
}

Alguma dúvida? Pergunte através dos comentários!

Ele está impedido - SPOJ - 2928 IMPEDIDO

Novo Comentário