fork download
  1. /*
  2.  * Author : Mostafaabbas1
  3. */
  4. #include<bits/stdc++.h>
  5. #define FAST() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  6. #define loop(n) for (int i = 0; i < n; i++)
  7. #define loop2(n) for (int j = 0; j < n; j++)
  8. #define fr(i, a, n) for(int i = a; i <= n; i++)
  9. #define pb push_back
  10. #define all(v) v.begin(),v.end()
  11. #define sz(v) ((int) ((v).size()))
  12. #define in(v,n) for(int i=0 ;i<n;i++) cin>>v[i];
  13. #define out(v,n) for(int i=0;i<n;i++) cout << v[i] <<" ";
  14. #define el cout<<endl;
  15. typedef long long ll;
  16. //typedef vector<int> vi;
  17. using namespace std;
  18.  
  19. bool prec (int x, int y)
  20. {
  21. return x>y;
  22. }
  23. //LCM(a,b) = (a*b) / gcd(a,b)
  24. int gcd(int a,int b);
  25. ll fastpower(ll b,ll p);
  26. void selection_Sort(int arr[], int n);
  27. void Bubble_sort(int arr[], int n);
  28. bool isPrime(int n);
  29.  
  30. void solve()
  31. {
  32. int n;
  33. while(cin >> n && n > 0)
  34. {
  35. deque<int> dq;
  36. fr(i,1,n)
  37. {
  38. dq.push_back(i);
  39. }
  40. cout<< "Discarded cards: ";
  41. while(dq.size()>1)
  42. {
  43. int x = dq.front();
  44. cout<<x;
  45. if(sz(dq)>2)
  46. cout<<", ";
  47. dq.pop_front();
  48. int y = dq.front();
  49. dq.pop_front();
  50. dq.push_back(y);
  51. }
  52. el
  53. cout<< "Remaining card: ";
  54. cout<< dq.front()<<endl;
  55. }
  56.  
  57. }
  58. int main()
  59. {
  60. FAST()
  61. int t;
  62. // cin>>t;
  63. // while(t--)
  64. solve();
  65. return 0;
  66. }
  67.  
  68. // *********************************** Functions *************************************************//
  69. int gcd(int a,int b)
  70. {
  71. // gcd(a,b) = gcd(b,a%b)
  72. while(b != 0)
  73. {
  74. int x = a;
  75. a = b;
  76. b = x % b;
  77. }
  78. return a;
  79. }
  80. ll fastpower(ll b,ll p)
  81. {
  82. ll ans=1;
  83. while(p)
  84. {
  85. if (p%2)
  86. {
  87. ans=ans*b;
  88. }
  89. b=b*b;
  90. p/=2;
  91. }
  92. return ans;
  93. }
  94.  
  95. void selection_Sort(int arr[], int n)
  96. {
  97. int minIdx ;
  98. for(int i = 0 ; i < n-1; i++)
  99. {
  100. minIdx = i;
  101. for(int j =i+1; j<n; j++)
  102. {
  103. if(arr[j] < arr[minIdx])
  104. minIdx = j;
  105. }
  106. swap(arr[minIdx], arr[i]);
  107. }
  108. }
  109.  
  110. void Bubble_sort(int arr[], int n)
  111. {
  112. bool f = true;
  113. for(int i = 0; i <n-1; i++)
  114. {
  115. for(int j = 0 ; j <n-i-1; j++)
  116. {
  117. if(arr[j] > arr[j+1])
  118. {
  119. swap(arr[j],arr[j+1]);
  120. f = false;
  121. }
  122. }
  123. if(f) break;
  124. }
  125. }
  126.  
  127. bool isPrime(int n)
  128. {
  129. if(n==1)
  130. return false;
  131. for(int i = 2 ; i <=sqrt(n); ++i)
  132. {
  133. if(n % i == 0 && n != 2)
  134. return false;
  135. }
  136. return true;
  137. }
  138.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty