fork download
  1. #include<stdio.h>
  2. #include<cmath>
  3. #include<vector>
  4.  
  5. using namespace std;
  6. vector<int> vec2;
  7. vector<int> vec1;
  8.  
  9. int main()
  10. {
  11. int t, n ,i, s, j, m ;
  12. vec1.reserve(31);
  13. vec2.reserve(31);
  14. scanf("%d",&t);
  15. for(i=30;i>=0;i++){
  16. vec1[30-i] = pow(2,i);
  17. }
  18. for(i=1; i<=t; i++) {
  19. s = 0;
  20. scanf("%d",&n);
  21. for(j=0;j<31;j++) {
  22. if(n>=vec1[j]) {
  23. vec2[j] = 1;
  24. n = n - vec1[j];
  25. }
  26. else{
  27. vec2[j] = 0;
  28. }
  29. }
  30. m = 1;
  31. for(j=30;m==1;j--) {
  32. if(vec2[j]==1 && vec2[j-1]==0) {
  33. m = 0;
  34. }
  35. }
  36. vec2[j] = 0;
  37. vec2[j-1] = 1;
  38. for(j=0; j<31; j++){
  39. if(vec2[j]==1) s = s + vec1[j];
  40. }
  41.  
  42. printf("Case %d: %d\n",i,s);
  43. }
  44. return 0;
  45. }
  46.  
Runtime error #stdin #stdout 0s 3272KB
stdin
Standard input is empty
stdout
Standard output is empty