Problem:
Score : 100 points

Problem Statement

You are given two integers A and B.
Find the largest value among A+B, A-B and A \times B.

Constraints

-1000 \leq A,B \leq 1000

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the largest value among A+B, A-B and A \times B.

Sample Input 1

3 1

Sample Output 1

4

3+1=4, 3-1=2 and 3 \times 1=3. The largest among them is 4.

Sample Input 2

4 -2

Sample Output 2

6

The largest is 4 - (-2) = 6.

Sample Input 3

0 0

Sample Output 3

0

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

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<list>
using namespace std;
using ll = long long;
int main() {
    int N; cin >> N;
    string S; cin >> S;
    int A[300005];//iまでにあるWの個数
    int B[300005];//iまでにあるEの個数
    for (int i = 0; i < N; ++i) {
        A[i] = 0;
    }
    if (S[0] == 'W')
        A[0]++;
    for (int i = 1; i < N; ++i) {
        if (S[i] == 'W')
            A[i] = A[i - 1] + 1;
        else
            A[i] = A[i - 1];
    }
    for (int i = 0; i < N; ++i) {
        B[i] = i + 1 - A[i];
    }
    int ans = 1e9;

    for (int i = 0; i < N; ++i) {
        int sum = 0;
        if (i == 0)
            sum = B[N - 1] - B[0];
        else {
            sum += A[i - 1] + B[N - 1] - B[i];
        }
        ans = min(ans, sum);
    }
    cout << ans << endl;
    return 0;
}