using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;
class Program
{
static void Main()
{
string expr = "50*2+1";
string[] num = Regex.Split(expr, @"\-|\+|\*|\/").Where(s => !String.IsNullOrEmpty(s)).ToArray(); // get Array for numbers
string[] op = Regex.Split(expr, @"\d{1,3}").Where(s => !String.IsNullOrEmpty(s)).ToArray(); // get Array for mathematical operators +,-,/,*
int numCtr = 0, lastVal=0; // number counter and last Value accumulator
string lastOp = ""; // last Operator
foreach (string n in num)
{
numCtr++;
if (numCtr == 1)
{
lastVal = int.Parse(n); // if first loop lastVal will have the first numeric value
}
else
{
if (!String.IsNullOrEmpty(lastOp)) // if last Operator not empty
{
// Do the mathematical computation and accumulation
switch (lastOp)
{
case "+":
lastVal = lastVal + int.Parse(n);
break;
case "-":
lastVal = lastVal - int.Parse(n);
break;
case "*":
lastVal = lastVal * int.Parse(n);
break;
case "/":
lastVal = lastVal + int.Parse(n);
break;
}
}
}
int opCtr = 0;
foreach (string o in op)
{
opCtr++;
if (opCtr == numCtr) //will make sure it will get the next operator
{
lastOp = o; // get the last operator
break;
}
}
}
Console.WriteLine(lastVal.ToString());
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwp1c2luZyBTeXN0ZW0uTGlucTsKCmNsYXNzIFByb2dyYW0KewogICAgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgc3RyaW5nIGV4cHIgPSAiNTAqMisxIjsgICAgICAgIAogICAgICAgIHN0cmluZ1tdIG51bSA9IFJlZ2V4LlNwbGl0KGV4cHIsIEAiXC18XCt8XCp8XC8iKS5XaGVyZShzID0+ICFTdHJpbmcuSXNOdWxsT3JFbXB0eShzKSkuVG9BcnJheSgpOyAvLyBnZXQgQXJyYXkgZm9yIG51bWJlcnMKICAgICAgICBzdHJpbmdbXSBvcCA9IFJlZ2V4LlNwbGl0KGV4cHIsIEAiXGR7MSwzfSIpLldoZXJlKHMgPT4gIVN0cmluZy5Jc051bGxPckVtcHR5KHMpKS5Ub0FycmF5KCk7IC8vIGdldCBBcnJheSBmb3IgbWF0aGVtYXRpY2FsIG9wZXJhdG9ycyArLC0sLywqCiAgICAgICAgaW50IG51bUN0ciA9IDAsIGxhc3RWYWw9MDsgLy8gbnVtYmVyIGNvdW50ZXIgYW5kIGxhc3QgVmFsdWUgYWNjdW11bGF0b3IKICAgICAgICBzdHJpbmcgbGFzdE9wID0gIiI7IC8vIGxhc3QgT3BlcmF0b3IKICAgICAgICBmb3JlYWNoIChzdHJpbmcgbiBpbiBudW0pCiAgICAgICAgewogICAgICAgICAgICBudW1DdHIrKzsKICAgICAgICAgICAgaWYgKG51bUN0ciA9PSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsYXN0VmFsID0gaW50LlBhcnNlKG4pOyAvLyBpZiBmaXJzdCBsb29wIGxhc3RWYWwgd2lsbCBoYXZlIHRoZSBmaXJzdCBudW1lcmljIHZhbHVlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoIVN0cmluZy5Jc051bGxPckVtcHR5KGxhc3RPcCkpIC8vIGlmIGxhc3QgT3BlcmF0b3Igbm90IGVtcHR5CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIG1hdGhlbWF0aWNhbCBjb21wdXRhdGlvbiBhbmQgYWNjdW11bGF0aW9uCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsYXN0T3ApIAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiKyI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VmFsID0gbGFzdFZhbCArIGludC5QYXJzZShuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICItIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RWYWwgPSBsYXN0VmFsIC0gaW50LlBhcnNlKG4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIioiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFZhbCA9IGxhc3RWYWwgKiBpbnQuUGFyc2Uobik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiLyI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VmFsID0gbGFzdFZhbCArIGludC5QYXJzZShuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IG9wQ3RyID0gMDsKICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIG8gaW4gb3ApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG9wQ3RyKys7CiAgICAgICAgICAgICAgICBpZiAob3BDdHIgPT0gbnVtQ3RyKSAvL3dpbGwgbWFrZSBzdXJlIGl0IHdpbGwgZ2V0IHRoZSBuZXh0IG9wZXJhdG9yCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbGFzdE9wID0gbzsgIC8vIGdldCB0aGUgbGFzdCBvcGVyYXRvcgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGxhc3RWYWwuVG9TdHJpbmcoKSk7CiAgICB9ICAgCn0=