Skip to content

Instantly share code, notes, and snippets.

@rogerioagjr
Created May 10, 2015 20:06
Show Gist options
  • Save rogerioagjr/438a005168adcf3c1b26 to your computer and use it in GitHub Desktop.
Save rogerioagjr/438a005168adcf3c1b26 to your computer and use it in GitHub Desktop.
Dentista
#include <cstdio>
#include <algorithm>
#define MAXN 10100
using namespace std;
struct compromisso { int ini, fim; }; // declaro a sruct compromisso
// declaro a função que compara compromissos pelo horário de fim
bool compara(compromisso a, compromisso b){ return a.fim<b.fim; }
compromisso consulta[MAXN]; // crio o vetor de compromissos de nome consulta
int n, x, y, livre, qtd; // declaro os inteiros que vou usar
int main(){
scanf("%d", &n); // leio o valor de n
// leio os horários de início e fim de cada consulta
for(int i=1; i<=n; i++) scanf("%d %d", &consulta[i].ini, &consulta[i].fim);
// ordeno as consultas pelo horário de fim
sort(consulta+1, consulta+n+1, compara);
// percorro o vetor ordenado
for(int i=1; i<=n; i++) // para cada consulta
if(consulta[i].ini>=livre){ // se posso atendê-la
qtd++; // aumento o número de atendimentos
livre=consulta[i].fim; // e guardo a hora em que o dentista estará livre
}
printf("%d\n", qtd); // por fim, imprimo o valor de qtd
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment