fork download
  1. // Solve the game
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void printA(int a[], int n){
  7. int i;
  8. for(i=0;i<n;i++){
  9. printf("%d ",a[i]);
  10. }
  11. printf("\n");
  12. }
  13.  
  14. void swap(int* a, int* b){
  15. int tmp;
  16. tmp = *a;
  17. *a = *b;
  18. *b = tmp;
  19. }
  20.  
  21. //ゲーム結果を出力する関数
  22. void solve(int a[], int n){
  23. //ここを書き換える
  24. for(int i=0; i<n-1; i++){
  25. for(int j=1; j<n-i; j++){
  26. if(a[j]>a[j-1]){
  27. swap(&a[j],&a[j-1]);
  28. }
  29. }
  30. }
  31. int A=0,B=0; //Aさん、Bさん
  32. //バブルソートで大きい順に並べかえる
  33. for(int i=0; i<n; i++){
  34. static int count=0;
  35. if(count%2==0){
  36. A +=a[i];
  37. }
  38. else B +=a[i];
  39. count ++;
  40. }
  41. printf("A = ");
  42. for(int i=0; i<n; i++){
  43. static int count=0;
  44. if(count%2==0){
  45. if(count!=0) printf("+"); // +を数字の前に、i!=0→count!=0
  46. printf("%d", a[i]);
  47. }
  48. count ++;
  49. }
  50. printf(" = %d\n" ,A);
  51.  
  52. printf("B = ");
  53.  
  54. for(int i=0; i<n; i++){
  55. static int count=0;
  56. if(count%2!=0){
  57. if(count!=1) printf("+"); // Bの最初はcount=1
  58. printf("%d", a[i]);
  59. }
  60. count ++;
  61. }
  62. printf(" = %d\n" ,B);
  63. }
  64.  
  65. int main(void){
  66. int n,i;
  67. int *v;
  68. scanf("%d",&n);
  69. v = (int*)malloc(sizeof(int)*n);
  70. if(v==NULL){
  71. printf("ERROR\n");
  72. return -1;
  73. }
  74. for(i=0;i<n;i++){
  75. scanf("%d",&v[i]);
  76. }
  77. solve(v,n);
  78. free(v);
  79. return 0;
  80. }
Success #stdin #stdout 0.01s 5300KB
stdin
8
21 55 5 13 8 2 34 3
stdout
A = 55+21+8+3 = 87
B = 34+13+5+2 = 54