結果
問題 | No.5003 物理好きクリッカー |
ユーザー | vis103 |
提出日時 | 2018-12-11 11:47:43 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 427 ms / 10,000 ms |
コード長 | 22,996 bytes |
コンパイル時間 | 856 ms |
実行使用メモリ | 34,116 KB |
スコア | 5,922,262 |
平均クエリ数 | 10000.00 |
最終ジャッジ日時 | 2021-07-19 09:21:27 |
合計ジャッジ時間 | 16,234 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge10 |
純コード判定しない問題か言語 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 379 ms
33,836 KB |
testcase_01 | AC | 379 ms
33,716 KB |
testcase_02 | AC | 376 ms
33,596 KB |
testcase_03 | AC | 381 ms
33,908 KB |
testcase_04 | AC | 377 ms
33,756 KB |
testcase_05 | AC | 383 ms
33,892 KB |
testcase_06 | AC | 389 ms
34,008 KB |
testcase_07 | AC | 399 ms
33,504 KB |
testcase_08 | AC | 395 ms
33,932 KB |
testcase_09 | AC | 427 ms
33,736 KB |
testcase_10 | AC | 399 ms
33,932 KB |
testcase_11 | AC | 377 ms
33,876 KB |
testcase_12 | AC | 381 ms
33,748 KB |
testcase_13 | AC | 378 ms
33,692 KB |
testcase_14 | AC | 376 ms
33,704 KB |
testcase_15 | AC | 376 ms
33,648 KB |
testcase_16 | AC | 375 ms
33,940 KB |
testcase_17 | AC | 374 ms
33,804 KB |
testcase_18 | AC | 378 ms
33,928 KB |
testcase_19 | AC | 378 ms
33,932 KB |
testcase_20 | AC | 377 ms
34,000 KB |
testcase_21 | AC | 377 ms
34,116 KB |
testcase_22 | AC | 377 ms
33,668 KB |
testcase_23 | AC | 378 ms
33,948 KB |
testcase_24 | AC | 378 ms
33,728 KB |
testcase_25 | AC | 376 ms
33,904 KB |
testcase_26 | AC | 377 ms
33,924 KB |
testcase_27 | AC | 397 ms
33,464 KB |
testcase_28 | AC | 376 ms
33,648 KB |
testcase_29 | AC | 382 ms
33,624 KB |
testcase_30 | AC | 376 ms
33,832 KB |
testcase_31 | AC | 381 ms
33,852 KB |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.6.0-4.20224.5 (ec77c100) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
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; }