Submission #8550461


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using static System.Console;
using static System.Math;
using static MyIO;
using static MyUtil;

public class C
{
	public static void Main() => (new Solver()).Solve();
}


public class Solver
{
	public void Solve()
	{
		string S = GetString();

		var good = new Regex(@"o+ookayama", RegexOptions.Compiled);
		var small = new Regex("oo", RegexOptions.Compiled);
		var capital = new Regex("OO", RegexOptions.Compiled);

		int state = 1;
		string T = "";
		int iT = -1;
		while(true)
		{
			switch(state)
			{
				case 1:
					var matches = good.Matches(S);
					if(matches.Count == 0)
					{
						WriteLine(S);
						return;
					}
					int max = 0;
					foreach(Match match in matches)
					{
						if(match.Length > max)
						{
							max = match.Length;
							T = match.Value;
							iT = match.Index;
						}						
					}
					state = 3;
					break;

				case 3:
					if(T.IndexOf("oo") != -1)
					{
						string U = small.Replace(T, "O", 1);
						var regex = new Regex(T);
						S = regex.Replace(S, U, 1, iT);
						T = U;
						state = 4;
					}
					else
					{
						state = 1;						
					}
					break;

				case 4:
					if(T.IndexOf("OO") != -1)
					{
						string U = capital.Replace(T, "o", 1);
						var regex = new Regex(T);
						S = regex.Replace(S, U, 1, iT);
						T = U;
					}
					state = 3;
					break;
			}
		}
	}
}

public static class MyIO
{
	private static string[] args = null;
	private static int num = -1;
	private static int used = -1;

	private static string getArg()
	{
		if(used == num)
		{
			args = Console.ReadLine().Split(' ');
			num = args.Length;
			used = 0;
		}
		return args[used++];
	}

	public static int GetInt() => int.Parse(getArg());
	public static long GetLong() => long.Parse(getArg());
	public static double GetDouble() => double.Parse(getArg());
	public static string GetString() => getArg();
	public static char GetChar() => getArg()[0];
	public static int[] GetInts(int N) => Enumerable.Range(0, N).Select(_ => GetInt()).ToArray();
	public static long[] GetLongs(int N) => Enumerable.Range(0, N).Select(_ => GetLong()).ToArray();
	public static double[] GetDoubles(int N) => Enumerable.Range(0, N).Select(_ => GetDouble()).ToArray();
	public static string[] GetStrings(int N) => Enumerable.Range(0, N).Select(_ => GetString()).ToArray();
}

public static class MyUtil
{
	public static void chmax<T>(ref T x, T y) where T : IComparable<T>
	{
		if(x.CompareTo(y) < 0)
			x = y;
	}

	public static void chmin<T>(ref T x, T y) where T : IComparable<T>
	{
		if(x.CompareTo(y) > 0)
			x = y;
	}

	public static void swap<T>(ref T x, ref T y)
	{
		T tmp = x;
		x = y;
		y = tmp;
	}
}

Submission Info

Submission Time
Task C - おおおかやま
User DM7PvTyc
Language C# (Mono 4.6.2.0)
Score 50
Code Size 2889 Byte
Status AC
Exec Time 61 ms
Memory 16200 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 50 / 50
Status
AC × 5
AC × 71
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 00_example_05.txt
All 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 00_example_05.txt, 05_rand_01.txt, 05_rand_02.txt, 05_rand_03.txt, 05_rand_04.txt, 05_rand_05.txt, 05_rand_06.txt, 05_rand_07.txt, 05_rand_08.txt, 05_rand_09.txt, 05_rand_10.txt, 05_rand_11.txt, 05_rand_12.txt, 05_rand_13.txt, 05_rand_14.txt, 05_rand_15.txt, 10_single_01.txt, 10_single_02.txt, 10_single_03.txt, 10_single_04.txt, 10_single_05.txt, 10_single_06.txt, 10_single_07.txt, 10_single_08.txt, 10_single_09.txt, 10_single_10.txt, 15_multiple_01.txt, 15_multiple_02.txt, 15_multiple_03.txt, 15_multiple_04.txt, 15_multiple_05.txt, 15_multiple_06.txt, 15_multiple_07.txt, 15_multiple_08.txt, 20_rand_multiple_01.txt, 20_rand_multiple_02.txt, 20_rand_multiple_03.txt, 20_rand_multiple_04.txt, 20_rand_multiple_05.txt, 20_rand_multiple_06.txt, 20_rand_multiple_07.txt, 20_rand_multiple_08.txt, 20_rand_multiple_09.txt, 20_rand_multiple_10.txt, 30_rand_ooo_multiple_01.txt, 30_rand_ooo_multiple_02.txt, 30_rand_ooo_multiple_03.txt, 30_rand_ooo_multiple_04.txt, 30_rand_ooo_multiple_05.txt, 30_rand_ooo_multiple_06.txt, 30_rand_ooo_multiple_07.txt, 30_rand_ooo_multiple_08.txt, 30_rand_ooo_multiple_09.txt, 30_rand_ooo_multiple_10.txt, 30_rand_ooo_multiple_11.txt, 30_rand_ooo_multiple_12.txt, 30_rand_ooo_multiple_13.txt, 30_rand_ooo_multiple_14.txt, 30_rand_ooo_multiple_15.txt, 40_hand_01.txt, 40_hand_02.txt, 40_hand_03.txt, 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 00_example_05.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 55 ms 14148 KB
00_example_02.txt AC 54 ms 14144 KB
00_example_03.txt AC 60 ms 14160 KB
00_example_04.txt AC 60 ms 12104 KB
00_example_05.txt AC 60 ms 12104 KB
05_rand_01.txt AC 55 ms 14040 KB
05_rand_02.txt AC 50 ms 14040 KB
05_rand_03.txt AC 55 ms 14024 KB
05_rand_04.txt AC 54 ms 14024 KB
05_rand_05.txt AC 55 ms 16088 KB
05_rand_06.txt AC 54 ms 11976 KB
05_rand_07.txt AC 54 ms 14156 KB
05_rand_08.txt AC 55 ms 14040 KB
05_rand_09.txt AC 55 ms 16072 KB
05_rand_10.txt AC 54 ms 14040 KB
05_rand_11.txt AC 54 ms 14156 KB
05_rand_12.txt AC 54 ms 14024 KB
05_rand_13.txt AC 54 ms 14160 KB
05_rand_14.txt AC 56 ms 16088 KB
05_rand_15.txt AC 55 ms 16088 KB
10_single_01.txt AC 54 ms 14024 KB
10_single_02.txt AC 55 ms 14024 KB
10_single_03.txt AC 60 ms 14040 KB
10_single_04.txt AC 61 ms 16200 KB
10_single_05.txt AC 61 ms 14152 KB
10_single_06.txt AC 60 ms 14152 KB
10_single_07.txt AC 60 ms 14152 KB
10_single_08.txt AC 60 ms 14220 KB
10_single_09.txt AC 61 ms 16200 KB
10_single_10.txt AC 60 ms 14152 KB
15_multiple_01.txt AC 56 ms 14024 KB
15_multiple_02.txt AC 59 ms 12104 KB
15_multiple_03.txt AC 60 ms 14040 KB
15_multiple_04.txt AC 60 ms 14040 KB
15_multiple_05.txt AC 61 ms 12104 KB
15_multiple_06.txt AC 60 ms 14160 KB
15_multiple_07.txt AC 61 ms 16200 KB
15_multiple_08.txt AC 60 ms 12112 KB
20_rand_multiple_01.txt AC 50 ms 14040 KB
20_rand_multiple_02.txt AC 50 ms 11992 KB
20_rand_multiple_03.txt AC 55 ms 14024 KB
20_rand_multiple_04.txt AC 54 ms 14156 KB
20_rand_multiple_05.txt AC 54 ms 14104 KB
20_rand_multiple_06.txt AC 54 ms 14156 KB
20_rand_multiple_07.txt AC 55 ms 14024 KB
20_rand_multiple_08.txt AC 54 ms 14040 KB
20_rand_multiple_09.txt AC 54 ms 12096 KB
20_rand_multiple_10.txt AC 54 ms 14144 KB
30_rand_ooo_multiple_01.txt AC 61 ms 14152 KB
30_rand_ooo_multiple_02.txt AC 60 ms 12104 KB
30_rand_ooo_multiple_03.txt AC 60 ms 14152 KB
30_rand_ooo_multiple_04.txt AC 61 ms 14152 KB
30_rand_ooo_multiple_05.txt AC 54 ms 11976 KB
30_rand_ooo_multiple_06.txt AC 60 ms 16200 KB
30_rand_ooo_multiple_07.txt AC 60 ms 16088 KB
30_rand_ooo_multiple_08.txt AC 60 ms 14164 KB
30_rand_ooo_multiple_09.txt AC 55 ms 14156 KB
30_rand_ooo_multiple_10.txt AC 60 ms 14160 KB
30_rand_ooo_multiple_11.txt AC 60 ms 14164 KB
30_rand_ooo_multiple_12.txt AC 60 ms 14164 KB
30_rand_ooo_multiple_13.txt AC 60 ms 14040 KB
30_rand_ooo_multiple_14.txt AC 60 ms 14040 KB
30_rand_ooo_multiple_15.txt AC 60 ms 14152 KB
40_hand_01.txt AC 50 ms 14140 KB
40_hand_02.txt AC 61 ms 14168 KB
40_hand_03.txt AC 54 ms 12112 KB