fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. // LONG LONG
  4. #define LL long long
  5. #define SFL(a) scanf("%lld",&a)
  6. #define SF2L(a,b) scanf("%lld%lld",&a,&b)
  7. #define PFL(a) printf("%lld",a)
  8. #define PF2L(a,b) printf("%lld %lld",a,b)
  9.  
  10. // INPUT
  11. #define SF(a) scanf("%d",&a)
  12. #define SF2(a,b) scanf("%d%d",&a,&b)
  13. #define SFS(a) scanf("%s",a)
  14.  
  15. // OUTPUT
  16. #define PF(a) printf("%d",a)
  17. #define PF2(a,b) printf("%d %d",a,b);
  18. #define PFS(s) printf("%s",s)
  19. #define PF2S(s1,s2) printf("%s %s",s1,s2)
  20.  
  21. #define NL printf("\n")
  22. #define fl(i,x,n) for(i=x;i<=n;i++)
  23. #define PB push_back
  24. #define MP make_pair
  25.  
  26. // DATA-STRUCTURES
  27. #define PII pair<int, int >
  28. #define PPIII pair<PII, int >
  29. #define PIPII pair<int, PII >
  30. #define PPIIPII pair<PII, PII >
  31.  
  32. // CONSTANTS
  33. #define MOD 1000000007
  34. #define SIZE 100005
  35.  
  36.  
  37. int main()
  38. {
  39. int i,j,r,g,b,sum=0;
  40. SF(r);
  41. SF2(g,b);
  42. if(r<=g && r<=b)
  43. {
  44. sum=r;
  45. i=g=g-r;
  46. j=b=b-r;
  47. }
  48. else if(b<=r && b<=g)
  49. {
  50. sum=b;
  51. i=r=r-b;
  52. j=g=g-b;
  53. }
  54. else
  55. {
  56. sum=g;
  57. i=r=r-g;
  58. j=b=b-g;
  59. }
  60. if(i>j)
  61. {
  62. int t=i;
  63. i=j;
  64. j=t;
  65. }
  66. while(i+j>=3)
  67. {
  68. if(i<j/2)
  69. {
  70. sum+=i;
  71. i=0;
  72. j=j-2*i;
  73. break;
  74. }
  75. else
  76. {
  77. sum+=j/2;
  78. i=i-j/2;
  79. j=j-2*(j/2);
  80. if(i>j)
  81. {
  82. int t=i;
  83. i=j;
  84. j=t;
  85. }
  86. }
  87. }
  88. PF(sum);
  89. NL;
  90. return 0;
  91. }
Success #stdin #stdout 0s 3460KB
stdin
2 3 3
stdout
2