Problem:
Score : 100 points

Problem Statement

We have two bottles for holding water.

Bottle 1 can hold up to A milliliters of water, and now it contains B milliliters of water.

Bottle 2 contains C milliliters of water.

We will transfer water from Bottle 2 to Bottle 1 as much as possible.

How much amount of water will remain in Bottle 2?

Constraints

All values in input are integers.

1 \leq B \leq A \leq 20

1 \leq C \leq 20

Input

Input is given from Standard Input in the following format:

A B C

Output

Print the integer representing the amount of water, in milliliters, that will remain in Bottle 2.

Sample Input 1

6 4 3

Sample Output 1

1

We will transfer two milliliters of water from Bottle 2 to Bottle 1, and one milliliter of water will remain in Bottle 2.

Sample Input 2

8 3 9

Sample Output 2

4

Sample Input 3

12 3 7

Sample Output 3

0

Solution in C# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;

namespace atcording_rl
{
    class Program
    {
        static void Main(string[] args)
        {
            string S = Console.ReadLine();
            bool isOdd = (S.Length % 2 == 0) ? false : true;

            var content = string.Empty;

            foreach(var a in extract(S, "LR"))
            {
                var count = a.Length;
                foreach(var b in extract(a, "RL"))
                {
                    for (var c = 0; c < b.Length; c++)
                    {
                        if (c == b.Length - 1 && b[c] == 'R' && isOdd)
                            Console.Write((count/2) + " ");
                        else if (c == b.Length - 1 && b[c] == 'R' && !isOdd && count%2 != 0)
                            Console.Write((count / 2 + 1) + " ");
                        else if (c == b.Length - 1 && b[c] == 'R' && !isOdd && count % 2 == 0)
                            Console.Write((count / 2) + " ");
                        else if (c == 0 && b[c] == 'L' && isOdd && count % 2 != 0)
                            Console.Write((count / 2 + 1) + " ");
                        else if (c == 0 && b[c] == 'L' && isOdd && count % 2 == 0)
                            Console.Write((count / 2) + " ");
                        else if (c == 0 && b[c] == 'L' && !isOdd)
                            Console.Write((count / 2) + " ");
                        else Console.Write("0 ");
                    }
                }
            }
        }

        static private List<string> extract(string S, string keyword)
        {

            List<string> list = new List<string>();
            int start = 0;

            while (S.Length > start)
            {
                var index = S.IndexOf(keyword, start);
                if (index != -1)
                {
                    list.Add(S.Substring(start, index + 1 - start));
                }
                else
                {
                    list.Add(S.Substring(start));
                    break;
      
                }
                start = index + 1;
            }

            return list;
        }
    }
}