Problem:
Score : 300 points

Problem Statement

You are given three integers A, B and C. Find the minimum number of operations required to make A, B and C all equal by repeatedly performing the following two kinds of operations in any order:

Choose two among A, B and C, then increase both by 1.

Choose one among A, B and C, then increase it by 2.

It can be proved that we can always make A, B and C all equal by repeatedly performing these operations.

Constraints

0 \leq A,B,C \leq 50

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B C

Output

Print the minimum number of operations required to make A, B and C all equal.

Sample Input 1

2 5 4

Sample Output 1

2

We can make A, B and C all equal by the following operations:

Increase A and C by 1. Now, A, B, C are 3, 5, 5, respectively.

Increase A by 2. Now, A, B, C are 5, 5, 5, respectively.

Sample Input 2

2 6 3

Sample Output 2

5

Sample Input 3

31 41 5

Sample Output 3

23

Solution in C (GCC 5.4.1) (judge verdict: Time Limit Exceeded)

#include<stdio.h>
    #include<string.h>
     
     
    int main(){
      int a,b,c,k,max,mx,my;
      int ans = 0;
      scanf("%d %d %d",&a,&b,&c);
      
      if(a%2 == b%2 && a%2 != c%2){
        a = a+1;
        b = b+1;
        ans += 1;
      }
      
      else if(a%2 == c%2 && a%2 != b%2){
        a = a+1;
        c = c+1;
        ans += 1;
      }
      
      else if(b%2 == c%2 && c%2 != a%2){
        c = c+1;
        b = b+1;
        ans += 1;
      }
      
      if(a>b && a>c){
        max = a;
        mx = b;
        my = c;
        k=(a-b)+(a-c);
      }
      else if(b>a && b>c){
        max = b;
        mx = a;
        my =c;
        k=(b-a)+(b-c);
      }
      else{
        max = c;
        mx = a;
        my = b;
        k=(c-a)+(c-b);
      }
      
        while(max!=mx && max!=my){
          mx = mx + 1;
          my = my + 1;
          ans = ans + 1;
        }
        while(max!=mx){
          mx = mx + 2;
          ans = ans + 1;
        }
        while(max!=my){
          my = my + 2;
          ans = ans + 1;
        } 
        
        printf("%d",ans);
        return 0;
    }