Skip to content

Instantly share code, notes, and snippets.

@ampulhetadosaber
Last active September 28, 2020 01:19
Show Gist options
  • Save ampulhetadosaber/dd508da20819240c668870af976a87b1 to your computer and use it in GitHub Desktop.
Save ampulhetadosaber/dd508da20819240c668870af976a87b1 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> fila;
int n;
// Adicionando n elementos
cin >> n;
for(int i = 0 ; i < n ; i++)
{
int id;
cin >> id;
fila.push(id);
}
// Removendo os n elementos da frente da fila
for(int i = 0 ; i < n ; i++) fila.pop();
/*
Agora imagine uma situação em que há k pessoas inicialmente em uma fila para sacarem
cada um uma quantia diferente de dinheiro e queremos saber quanto dinheiro foi sacado
no final enquanto administramos a fila. Cada pessoa tem um id, que vai aumentando de
1 em 1 a partir do primeiro de acordo com que as pessoas entram na fila.
*/
int atv; // variável que vai definir que atividade realizar
int din; // quantidade de dinheiro sacado por cada pessoa
int dintotal;// quantidade de dinheiro sacada por todas as pessoas juntas
int k;
cin >> k;
for(int i = 1 ; i < k + 1 ; i++) fila.push(i); // adicionando as pessoas iniciais na fila
while(cin >> atv)
{
if(atv == 1) // Se a atividade for 1, vamos adicionar alguém na fila ao final da fila
{
int id;
cin >> id;
fila.push(id);
}
else if(atv == 2) // Se a atividade for 2, vamos atender atender a primeira pessoa da fila
{
cin >> din; // quantidade de dinheiro que a pessoa sacou
dintotal += din;
fila.pop(); // excluimos a pessoa que acabamos de atender da fila
}
if(fila.empty()) // se a fila estiver vazia, encerramos o processo
break;
}
cout << dintotal; // após acabar o processo, imprimimos a todo o dinheiro sacado
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment