結果
問題 | No.5003 物理好きクリッカー |
ユーザー | vis103 |
提出日時 | 2018-12-11 09:32:21 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 401 ms / 10,000 ms |
コード長 | 21,648 bytes |
コンパイル時間 | 889 ms |
実行使用メモリ | 33,632 KB |
スコア | 3,246,478 |
平均クエリ数 | 10000.00 |
最終ジャッジ日時 | 2021-07-19 09:20:47 |
合計ジャッジ時間 | 16,012 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge15 |
純コード判定しない問題か言語 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 360 ms
33,452 KB |
testcase_01 | AC | 358 ms
33,388 KB |
testcase_02 | AC | 351 ms
33,332 KB |
testcase_03 | AC | 360 ms
33,160 KB |
testcase_04 | AC | 373 ms
33,336 KB |
testcase_05 | AC | 364 ms
33,164 KB |
testcase_06 | AC | 354 ms
33,304 KB |
testcase_07 | AC | 359 ms
33,464 KB |
testcase_08 | AC | 361 ms
33,108 KB |
testcase_09 | AC | 353 ms
33,264 KB |
testcase_10 | AC | 358 ms
33,428 KB |
testcase_11 | AC | 395 ms
33,324 KB |
testcase_12 | AC | 352 ms
33,232 KB |
testcase_13 | AC | 361 ms
33,496 KB |
testcase_14 | AC | 398 ms
33,064 KB |
testcase_15 | AC | 392 ms
33,224 KB |
testcase_16 | AC | 394 ms
33,360 KB |
testcase_17 | AC | 393 ms
33,500 KB |
testcase_18 | AC | 401 ms
33,228 KB |
testcase_19 | AC | 395 ms
33,324 KB |
testcase_20 | AC | 384 ms
33,468 KB |
testcase_21 | AC | 391 ms
33,268 KB |
testcase_22 | AC | 358 ms
33,096 KB |
testcase_23 | AC | 358 ms
33,524 KB |
testcase_24 | AC | 354 ms
33,548 KB |
testcase_25 | AC | 349 ms
33,424 KB |
testcase_26 | AC | 353 ms
33,392 KB |
testcase_27 | AC | 352 ms
33,188 KB |
testcase_28 | AC | 348 ms
33,260 KB |
testcase_29 | AC | 354 ms
33,296 KB |
testcase_30 | AC | 364 ms
33,020 KB |
testcase_31 | AC | 354 ms
33,264 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 - 150) { // 後半買わないでクリック 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].Count * eq[4].Product / eq[4].Reinforce < 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; }