結果
問題 | No.5003 物理好きクリッカー |
ユーザー | vis103 |
提出日時 | 2018-12-11 09:48:39 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 397 ms / 10,000 ms |
コード長 | 21,719 bytes |
コンパイル時間 | 2,536 ms |
実行使用メモリ | 33,664 KB |
スコア | 3,246,478 |
平均クエリ数 | 10000.00 |
最終ジャッジ日時 | 2021-07-19 09:21:13 |
合計ジャッジ時間 | 18,133 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge14 |
純コード判定しない問題か言語 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 391 ms
33,248 KB |
testcase_01 | AC | 383 ms
33,352 KB |
testcase_02 | AC | 390 ms
33,148 KB |
testcase_03 | AC | 397 ms
33,040 KB |
testcase_04 | AC | 387 ms
33,568 KB |
testcase_05 | AC | 380 ms
33,432 KB |
testcase_06 | AC | 380 ms
32,972 KB |
testcase_07 | AC | 383 ms
33,364 KB |
testcase_08 | AC | 381 ms
33,472 KB |
testcase_09 | AC | 388 ms
33,304 KB |
testcase_10 | AC | 381 ms
33,212 KB |
testcase_11 | AC | 391 ms
33,160 KB |
testcase_12 | AC | 385 ms
33,448 KB |
testcase_13 | AC | 382 ms
33,152 KB |
testcase_14 | AC | 377 ms
33,476 KB |
testcase_15 | AC | 378 ms
33,560 KB |
testcase_16 | AC | 378 ms
33,244 KB |
testcase_17 | AC | 382 ms
33,204 KB |
testcase_18 | AC | 384 ms
33,076 KB |
testcase_19 | AC | 379 ms
33,212 KB |
testcase_20 | AC | 378 ms
33,304 KB |
testcase_21 | AC | 382 ms
33,100 KB |
testcase_22 | AC | 383 ms
33,540 KB |
testcase_23 | AC | 380 ms
33,256 KB |
testcase_24 | AC | 379 ms
33,360 KB |
testcase_25 | AC | 382 ms
33,192 KB |
testcase_26 | AC | 384 ms
33,228 KB |
testcase_27 | AC | 386 ms
33,540 KB |
testcase_28 | AC | 382 ms
33,484 KB |
testcase_29 | AC | 386 ms
33,252 KB |
testcase_30 | AC | 380 ms
33,308 KB |
testcase_31 | AC | 382 ms
33,376 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 (Cookies >= 15 && !buyHandflg) { Console.WriteLine("enhclick"); Console.ReadLine(); Cookies -= 15; Cookies += GetProducts(); buyHandflg = true; if (SpecialFactor.Substring(nowTurn, 1) == "B") { Cookies += (int)Math.Floor(Cookies * 0.01); } continue; } else if (Cookies >= eq[0].Buy) { Console.WriteLine("buy hand"); Console.ReadLine(); Cookies -= eq[0].Buy; eq[0].Buy = (int)Math.Ceiling((double)eq[0].Buy * 1.2); eq[0].Count++; Cookies += GetProducts(); if (SpecialFactor.Substring(nowTurn, 1) == "B") { Cookies += (int)Math.Floor(Cookies * 0.01); } continue; } else { Console.WriteLine("click"); Console.ReadLine(); if(buyHandflg) { Cookies++; } else { Cookies++; Cookies++; } if (SpecialFactor.Substring(nowTurn, 1) == "B") { Cookies += (int)Math.Floor(Cookies * 0.01); } Cookies += GetProducts(); continue; } } 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) { 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) { 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].Buy * 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) { 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) { 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].Buy * 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) { 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) { 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].Buy * 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) { 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) { 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].Buy * 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) { 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) { 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].Buy * 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; }