Problem:
Score : 100 points

Problem Statement

You are given three words s_1, s_2 and s_3, each composed of lowercase English letters, with spaces in between.
Print the acronym formed from the uppercased initial letters of the words.

Constraints

s_1, s_2 and s_3 are composed of lowercase English letters.

1 ≤ |s_i| ≤ 10 (1≤i≤3)

Input

Input is given from Standard Input in the following format:

s_1 s_2 s_3

Output

Print the answer.

Sample Input 1

atcoder beginner contest

Sample Output 1

ABC

The initial letters of atcoder, beginner and contest are a, b and c. Uppercase and concatenate them to obtain ABC.

Sample Input 2

resident register number

Sample Output 2

RRN

Sample Input 3

k nearest neighbor

Sample Output 3

KNN

Sample Input 4

async layered coding

Sample Output 4

ALC

Solution in C++ (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    long long a[n], s[n];
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        if (i == 0)
        {
            s[0] = a[0];
        }
        else
        {
            s[i] = s[i - 1] + a[i];
        }
    }
    long long cng = 0;
    long long ans = 0;

    if (a[0] == 0)
    {
        if (0 > a[1])
        {
            cng--;
        }
        else
        {
            cng++;
        }
        ans++;
    }
    for (int i = 1; i < n; i++)
    {
        if (((s[i] + cng < 0) && (0 < s[i - 1] + cng)) || ((s[i] + cng > 0) && (0 > s[i - 1] + cng)))
        {
            //ok
            continue;
        }
        assert(s[i - 1] + cng != 0);

        if (s[i] + cng >= 0) //減らさないといけない
        {
            ans += s[i] + cng + 1;

            cng -= s[i] + cng + 1;
        }
        else //増やさないといけない
        {
            ans += -(s[i] + cng) + 1;

            cng += -(s[i] + cng) + 1;
        }
    }
    cout << ans << endl;
    return 0;
}