using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Program { static Equipment[] eq = new Equipment[5]; static int nowTurn = 0; static int SevenTimesTurn = 0; static string SpecialFactor; static void Main(string[] args) { int Turn = int.Parse(Console.ReadLine()); SpecialFactor = Console.ReadLine(); eq[0] = new Equipment(); eq[0].Name = "hand"; eq[0].Buy = 150; eq[0].Product = 1; eq[0].Reinforce = 1500; eq[1] = new Equipment(); eq[1].Name = "lily"; eq[1].Buy = 2000; eq[1].Product = 10; eq[1].Reinforce = 20000; eq[2] = new Equipment(); eq[2].Name = "factory"; eq[2].Buy = 30000; eq[2].Product = 120; eq[2].Reinforce = 300000; eq[3] = new Equipment(); eq[3].Name = "casino"; eq[3].Buy = 600000; eq[3].Product = 2000; eq[3].Reinforce = 6000000; eq[4] = new Equipment(); eq[4].Name = "grimoire"; eq[4].Buy = 10000000; eq[4].Product = 25000; eq[4].Reinforce = 100000000; int Cookies = 0; bool buyHandflg = false; for(; nowTurn < Turn || nowTurn < 200; nowTurn++) { if (SpecialFactor.Substring(nowTurn, 1) == "F") { SevenTimesTurn = 21; } if (((Cookies >= 14 && SpecialFactor.Substring(nowTurn, 1) == "S") || Cookies >= 15) && !buyHandflg) { Console.WriteLine("enhclick"); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= 14; } else { Cookies -= 15; } buyHandflg = true; continue; } else if (Cookies >= eq[0].Buy || (Cookies >= (int)Math.Ceiling(eq[0].Buy * 0.9) && SpecialFactor.Substring(nowTurn, 1)== "S")) { Console.WriteLine("buy hand"); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[0].Buy * 0.9); } else { Cookies -= eq[0].Buy; } eq[0].Buy = (int)Math.Ceiling((double)eq[0].Buy * 1.2); eq[0].Count++; continue; } else { Console.WriteLine("click"); Console.ReadLine(); if(buyHandflg) { Cookies++; Cookies++; } else { Cookies++; } continue; } if (SpecialFactor.Substring(nowTurn, 1) == "B") { Cookies += (int)Math.Floor(Cookies * 0.01); } Cookies += GetProducts(); } for (; nowTurn < Turn; nowTurn++) { try { if (SpecialFactor.Substring(nowTurn, 1) == "F") { SevenTimesTurn = 21; } // 最後のsell判断 if (eq[0].Count + eq[1].Count + eq[2].Count + eq[3].Count + eq[4].Count >= Turn - nowTurn) { if (0 < eq[0].Count) { Console.WriteLine("sell " + eq[0].Name); Console.ReadLine(); continue; } else if (0 < eq[1].Count) { Console.WriteLine("sell " + eq[1].Name); Console.ReadLine(); continue; } else if (0 < eq[2].Count) { Console.WriteLine("sell " + eq[2].Name); Console.ReadLine(); continue; } else if (0 < eq[3].Count) { Console.WriteLine("sell " + eq[3].Name); Console.ReadLine(); continue; } else if (0 < eq[4].Count) { Console.WriteLine("sell " + eq[4].Name); Console.ReadLine(); continue; } } else if (eq[0].Count + eq[1].Count + eq[2].Count + eq[3].Count + eq[4].Count >= Turn - nowTurn - 200) { // 後半買わないでクリック Console.WriteLine("click"); Console.ReadLine(); continue; } if (eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[0].Product / eq[0].Buy && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[0].Product / eq[0].Buy && eq[1].Product / eq[1].Buy <= eq[0].Product / eq[0].Buy && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[0].Product / eq[0].Buy && eq[2].Product / eq[2].Buy <= eq[0].Product / eq[0].Buy && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[0].Product / eq[0].Buy && eq[3].Product / eq[3].Buy <= eq[0].Product / eq[0].Buy && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[0].Product / eq[0].Buy && eq[4].Product / eq[4].Buy <= eq[0].Product / eq[0].Buy && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[0].Product / eq[0].Buy && (eq[0].Buy <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[0].Buy * 0.9) <= Cookies)) { Console.WriteLine("buy " + eq[0].Name); Console.ReadLine(); if(SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[0].Buy * 0.9); } else { Cookies -= eq[0].Buy; } eq[0].Buy = (int)Math.Ceiling((double)eq[0].Buy * 1.2); eq[0].Count++; continue; } else if (eq[0].Product / eq[0].Buy <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[1].Product / eq[1].Buy <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[2].Product / eq[2].Buy <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[3].Product / eq[3].Buy <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[4].Product / eq[4].Buy <= eq[0].Count * eq[0].Product / eq[0].Reinforce && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[0].Count * eq[0].Product / eq[0].Reinforce && (eq[0].Reinforce <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[0].Reinforce * 0.9) <= Cookies)) { Console.WriteLine("reinforce " + eq[0].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[0].Reinforce * 0.9); } else { Cookies -= eq[0].Reinforce; } eq[0].Reinforce = eq[0].Reinforce * 10; eq[0].Product *= 2; continue; } else if (eq[0].Product / eq[0].Buy <= eq[1].Product / eq[1].Buy && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[1].Product / eq[1].Buy && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[1].Product / eq[1].Buy && eq[2].Product / eq[2].Buy <= eq[1].Product / eq[1].Buy && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[1].Product / eq[1].Buy && eq[3].Product / eq[3].Buy <= eq[1].Product / eq[1].Buy && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[1].Product / eq[1].Buy && eq[4].Product / eq[4].Buy <= eq[1].Product / eq[1].Buy && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[1].Product / eq[1].Buy && (eq[1].Buy <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[1].Buy * 0.9) <= Cookies)) { Console.WriteLine("buy " + eq[1].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[1].Buy * 0.9); } else { Cookies -= eq[1].Buy; } eq[1].Buy = (int)Math.Ceiling((double)eq[1].Buy * 1.2); eq[1].Count++; continue; } else if (eq[0].Product / eq[0].Buy <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[1].Product / eq[1].Buy <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[2].Product / eq[2].Buy <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[3].Product / eq[3].Buy <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[4].Product / eq[4].Buy <= eq[1].Count * eq[1].Product / eq[1].Reinforce && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[1].Count * eq[1].Product / eq[1].Reinforce && (eq[1].Reinforce <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[1].Reinforce * 0.9) <= Cookies)) { Console.WriteLine("reinforce " + eq[1].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[1].Reinforce * 0.9); } else { Cookies -= eq[1].Reinforce; } eq[1].Reinforce = eq[1].Reinforce * 10; eq[1].Product *= 2; continue; } else if (eq[0].Product / eq[0].Buy <= eq[2].Product / eq[2].Buy && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[2].Product / eq[2].Buy && eq[1].Product / eq[1].Buy <= eq[2].Product / eq[2].Buy && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[2].Product / eq[2].Buy && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[2].Product / eq[2].Buy && eq[3].Product / eq[3].Buy <= eq[2].Product / eq[2].Buy && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[2].Product / eq[2].Buy && eq[4].Product / eq[4].Buy <= eq[2].Product / eq[2].Buy && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[2].Product / eq[2].Buy && (eq[2].Buy <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[2].Buy * 0.9) <= Cookies)) { Console.WriteLine("buy " + eq[2].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[2].Buy * 0.9); } else { Cookies -= eq[2].Buy; } eq[2].Buy = (int)Math.Ceiling((double)eq[2].Buy * 1.2); eq[2].Count++; continue; } else if (eq[0].Product / eq[0].Buy <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[1].Product / eq[1].Buy <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[2].Product / eq[2].Buy <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[3].Product / eq[3].Buy <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[4].Product / eq[4].Buy <= eq[2].Count * eq[2].Product / eq[2].Reinforce && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[2].Count * eq[2].Product / eq[2].Reinforce && (eq[2].Reinforce <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[2].Reinforce * 0.9) <= Cookies)) { Console.WriteLine("reinforce " + eq[2].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[2].Reinforce * 0.9); } else { Cookies -= eq[2].Reinforce; } eq[2].Reinforce = eq[2].Reinforce * 10; eq[2].Product *= 2; continue; } else if (eq[0].Product / eq[0].Buy <= eq[3].Product / eq[3].Buy && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[3].Product / eq[3].Buy && eq[1].Product / eq[1].Buy <= eq[3].Product / eq[3].Buy && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[3].Product / eq[3].Buy && eq[2].Product / eq[2].Buy <= eq[3].Product / eq[3].Buy && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[3].Product / eq[3].Buy && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[3].Product / eq[3].Buy && eq[4].Product / eq[4].Buy <= eq[3].Product / eq[3].Buy && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[3].Product / eq[3].Buy && (eq[3].Buy <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[3].Buy * 0.9) <= Cookies)) { Console.WriteLine("buy " + eq[3].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[3].Buy * 0.9); } else { Cookies -= eq[3].Buy; } eq[3].Buy = (int)Math.Ceiling((double)eq[3].Buy * 1.2); eq[3].Count++; continue; } else if (eq[0].Product / eq[0].Buy <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[1].Product / eq[1].Buy <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[2].Product / eq[2].Buy <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[3].Product / eq[3].Buy <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[4].Product / eq[4].Buy <= eq[3].Count * eq[3].Product / eq[3].Reinforce && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[3].Count * eq[3].Product / eq[3].Reinforce && (eq[3].Reinforce <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[3].Reinforce * 0.9) <= Cookies)) { Console.WriteLine("reinforce " + eq[3].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[3].Reinforce * 0.9); } else { Cookies -= eq[3].Reinforce; } eq[3].Reinforce = eq[3].Reinforce * 10; eq[3].Product *= 2; continue; } else if (eq[0].Product / eq[0].Buy <= eq[4].Product / eq[4].Buy && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[4].Product / eq[4].Buy && eq[1].Product / eq[1].Buy <= eq[4].Product / eq[4].Buy && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[4].Product / eq[4].Buy && eq[2].Product / eq[2].Buy <= eq[4].Product / eq[4].Buy && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[4].Product / eq[4].Buy && eq[3].Product / eq[3].Buy <= eq[4].Product / eq[4].Buy && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[4].Product / eq[4].Buy && eq[4].Count * eq[4].Product / eq[4].Reinforce <= eq[4].Product / eq[4].Buy && (eq[4].Buy <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[4].Buy * 0.9) <= Cookies)) { Console.WriteLine("buy " + eq[4].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[4].Buy * 0.9); } else { Cookies -= eq[4].Buy; } eq[4].Buy = (int)Math.Ceiling((double)eq[4].Buy * 1.2); eq[4].Count++; continue; } else if (eq[0].Product / eq[0].Buy <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[0].Count * eq[0].Product / eq[0].Reinforce <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[1].Product / eq[1].Buy <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[1].Count * eq[1].Product / eq[1].Reinforce <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[2].Product / eq[2].Buy <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[2].Count * eq[2].Product / eq[2].Reinforce <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[3].Product / eq[3].Buy <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[3].Count * eq[3].Product / eq[3].Reinforce <= eq[4].Count * eq[4].Product / eq[4].Reinforce && eq[4].Product / eq[4].Buy <= eq[4].Count * eq[4].Product / eq[4].Reinforce && (eq[4].Reinforce <= Cookies || (SpecialFactor.Substring(nowTurn, 1) == "S") && Math.Ceiling(eq[4].Reinforce * 0.9) <= Cookies)) { Console.WriteLine("reinforce " + eq[4].Name); Console.ReadLine(); if (SpecialFactor.Substring(nowTurn, 1) == "S") { Cookies -= (int)Math.Ceiling(eq[4].Reinforce * 0.9); } else { Cookies -= eq[4].Reinforce; } eq[4].Reinforce = eq[4].Reinforce * 10; eq[4].Product *= 2; continue; } Console.WriteLine("click"); Console.ReadLine(); Cookies++; Cookies++; } catch { } finally { if(SpecialFactor.Substring(nowTurn, 1) == "B") { Cookies += (int)Math.Floor(Cookies * 0.01); } Cookies += GetProducts(); } } } private static int GetProducts() { SevenTimesTurn--; return 0 < SevenTimesTurn ? (eq[0].Product * eq[0].Count + eq[1].Product * eq[1].Count + eq[2].Product * eq[2].Count + eq[3].Product * eq[3].Count + eq[4].Product * eq[4].Count) * 7 : eq[0].Product * eq[0].Count + eq[1].Product * eq[1].Count + eq[2].Product * eq[2].Count + eq[3].Product * eq[3].Count + eq[4].Product * eq[4].Count; } } class Equipment { public string Name { get; set; } public int Buy = 0; public int Product = 0; public int Reinforce = 0; public int Count = 0; }