fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. queue<long long int>card;
  7. long long int n,temp;
  8.  
  9. while(scanf("%lld",&n)==1&& n!=0){
  10. for(long long int i=1; i<=n; i++){
  11. card.push(i);
  12. }
  13. cout<<"Discarded cards:";
  14. while(card.size() > 1){
  15. cout<<" "<<card.front();
  16. card.pop();
  17. temp = card.front();
  18. card.pop();
  19. if(!card.empty()){
  20. cout<<",";
  21. }
  22. card.push(temp);
  23. }
  24. cout<<endl<<"Remaining card: "<<card.front()<<endl;
  25. card.pop();
  26. }
  27. return 0;
  28. }
Success #stdin #stdout 0s 15240KB
stdin
7
19
10
6
0
stdout
Discarded cards: 1, 3, 5, 7, 4, 2
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 4, 8, 12, 16, 2, 10, 18, 14
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 2, 6, 10, 8
Remaining card: 4
Discarded cards: 1, 3, 5, 2, 6
Remaining card: 4