Created
April 30, 2015 18:23
-
-
Save rogerioagjr/ce06b47641261ad2d186 to your computer and use it in GitHub Desktop.
Cards2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <cstdio> // scanf e printf | |
#define MAXT 1000100 // defino o tamanho limite da fila como 1000100 | |
int fila[MAXT], n, ini=1, fim; // declaro as variáveis que vou usar | |
int main(){ | |
while(scanf("%d", &n) && n!=0){ // enquanto a entrada não for zero | |
ini=1; fim=0; // limpe a fila ("clear();") | |
for(int i=1; i<=n; i++) fila[++fim]=i; // coloque os inteiros de 1 a n nela ("push(i);") | |
printf("Discarded cards:"); // imprima "Discarded cards:" | |
while(fim-ini+1>=2){ // enquanto houver mais de uma carta na fila ("while(size()>=2)") | |
printf(" %d", fila[ini]); // imprima a primeira carta ("printf(" %d", front());") | |
ini++; // tire ela da fila ("pop();") | |
fila[++fim]=fila[ini]; // insira nova primeira carta no fim da fila ("push(front());") | |
ini++; // e a retire do começo novamente ("pop();") | |
// se ainda houver mais de um elemento na fila, imprima a vírgula | |
if(fim-ini+1>=2) printf(","); // ("if(size()>=2) printf(",");") | |
} | |
printf("\nRemaining card: %d\n", fila[ini]); // imprima a carta restante ("front()") | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment