using System;
public class Test
{
public static void Main()
{
string stringNumber = "-42";
int number = StringToInteger(stringNumber);
System.Console.WriteLine(number);
}
public static int StringToInteger(string value)
{
bool negative = false;
int i = 0;
if (value[0] == '-')
{
negative = true;
++i;
}
int number = 0;
for (; i < value.Length; ++i)
{
var character = value[i];
number = (number << 1) + (number << 3) + (character - '0');
}
if (negative)
number = -number;
return number;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXN0cmluZyBzdHJpbmdOdW1iZXIgPSAiLTQyIjsKCQlpbnQgbnVtYmVyID0gU3RyaW5nVG9JbnRlZ2VyKHN0cmluZ051bWJlcik7CgkJCgkJU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKG51bWJlcik7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgaW50IFN0cmluZ1RvSW50ZWdlcihzdHJpbmcgdmFsdWUpCiAgICB7CiAgICAgICAgYm9vbCBuZWdhdGl2ZSA9IGZhbHNlOwogICAgICAgIGludCBpID0gMDsKCiAgICAgICAgaWYgKHZhbHVlWzBdID09ICctJykKICAgICAgICB7CiAgICAgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgKytpOwogICAgICAgIH0KCiAgICAgICAgaW50IG51bWJlciA9IDA7CiAgICAgICAgZm9yICg7IGkgPCB2YWx1ZS5MZW5ndGg7ICsraSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjaGFyYWN0ZXIgPSB2YWx1ZVtpXTsKICAgICAgICAgICAgbnVtYmVyID0gKG51bWJlciA8PCAxKSArIChudW1iZXIgPDwgMykgKyAoY2hhcmFjdGVyIC0gJzAnKTsKICAgICAgICB9CgogICAgICAgIGlmIChuZWdhdGl2ZSkKICAgICAgICAgICAgbnVtYmVyID0gLW51bWJlcjsKICAgICAgICByZXR1cm4gbnVtYmVyOwogICAgfQp9