private static ChallengeInfo ParseOneCppChallenge(string infoString, int challengeIndex, ref int readPointer) { var index = infoString.IndexOf('$', readPointer); var contest = infoString.Substring(readPointer, index - readPointer); readPointer = index + 1; index = infoString.IndexOf('<', readPointer); var name = infoString.Substring(readPointer, index - readPointer); readPointer = index + 1; index = infoString.IndexOf('>', readPointer); var uri = infoString.Substring(readPointer, index - readPointer); readPointer = index + 1; index = infoString.IndexOf('$', readPointer); var input = ChallengeClass.CppStringToCs(infoString.Substring(readPointer, index - readPointer)); readPointer = index + 1; index = infoString.IndexOf('$', readPointer); var output = ChallengeClass.CppStringToCs(infoString.Substring(readPointer, index - readPointer)); readPointer = index + 1; IChallenge newChallenge = new CppChallenge(challengeIndex, input, output); return(new ChallengeInfo(name, contest, newChallenge, new Uri(uri))); }
public void Solve() { var input = ChallengeClass.CsStringToCpp(Console.In.ReadToEnd()); var ret = ChallengeClass.CppStringToCs(RunSolver(_index, input)); if (ret == "<<<EXCEPTION>>>") { throw new InvalidOperationException("C++ program threw an exception"); } Console.Write(ret); }