結果

問題 No.5003 物理好きクリッカー
ユーザー vis103vis103
提出日時 2018-12-10 21:11:30
言語 C#(csc)
(csc 3.9.0)
結果
RE  
(最新)
AC  
(最初)
実行時間 -
コード長 16,848 bytes
コンパイル時間 3,312 ms
実行使用メモリ 33,096 KB
スコア 0
平均クエリ数 10000.00
最終ジャッジ日時 2021-07-19 09:18:59
合計ジャッジ時間 18,146 ms
ジャッジサーバーID
(参考情報)
judge15 / judge14
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 RE -
testcase_01 RE -
testcase_02 RE -
testcase_03 RE -
testcase_04 RE -
testcase_05 RE -
testcase_06 RE -
testcase_07 RE -
testcase_08 RE -
testcase_09 RE -
testcase_10 RE -
testcase_11 RE -
testcase_12 RE -
testcase_13 RE -
testcase_14 RE -
testcase_15 RE -
testcase_16 RE -
testcase_17 RE -
testcase_18 RE -
testcase_19 RE -
testcase_20 RE -
testcase_21 RE -
testcase_22 RE -
testcase_23 RE -
testcase_24 RE -
testcase_25 RE -
testcase_26 RE -
testcase_27 RE -
testcase_28 RE -
testcase_29 RE -
testcase_30 RE -
testcase_31 RE -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.6.0-4.20224.5 (ec77c100)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

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 void Main(string[] args)
    {
        int Turn = int.Parse(Console.ReadLine());
        string Factor = 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(int i = 0; i < Turn || i < 200; i++)
        {
            if (Cookies >= 15 && !buyHandflg)
            {
                Console.WriteLine("buy click");
                Console.ReadLine();
                Cookies -= 15;
                Cookies += GetProducts();

                buyHandflg = true;
                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);
                Cookies += GetProducts();
                eq[0].Count++;
                
                continue;
            }
            else
            {
                Console.WriteLine("click");
                Console.ReadLine();
                if(buyHandflg)
                {
                    Cookies++;
                }
                else
                {
                    Cookies++;
                    Cookies++;
                }
                continue;
            }

        }


        for(int i = 200; i < Turn; i++)
        {
            // 最後のsell判断
            if (eq[0].Count + eq[1].Count + eq[2].Count + eq[3].Count + eq[4].Count >= Turn - i)
            {
                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 - i - 200)
            {
                // 後半買わないでクリック
                Console.WriteLine("click");
                Console.ReadLine();
            }

            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();

                Cookies -= eq[0].Buy;
                eq[0].Buy = (int)Math.Ceiling((double)eq[0].Buy * 1.2);
                eq[0].Count++;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[0].Reinforce;
                eq[0].Reinforce = eq[0].Buy * 10;
                eq[0].Product *= 2;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[1].Buy;
                eq[1].Buy = (int)Math.Ceiling((double)eq[1].Buy * 1.2);
                eq[1].Count++;
                Cookies += GetProducts();
            }
            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();
                
                Cookies -= eq[1].Reinforce;
                eq[1].Reinforce = eq[1].Buy * 10;
                eq[1].Product *= 2;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[2].Buy;
                eq[2].Buy = (int)Math.Ceiling((double)eq[2].Buy * 1.2);
                eq[2].Count++;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[2].Reinforce;
                eq[2].Reinforce = eq[2].Buy * 10;
                eq[2].Product *= 2;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[3].Buy;
                eq[3].Buy = (int)Math.Ceiling((double)eq[3].Buy * 1.2);
                eq[3].Count++;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[3].Reinforce;
                eq[3].Reinforce = eq[3].Buy * 10;
                eq[3].Product *= 2;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[4].Buy;
                eq[4].Buy = (int)Math.Ceiling((double)eq[4].Buy * 1.2);
                eq[4].Count++;
                Cookies += GetProducts();
            }
            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();

                Cookies -= eq[4].Reinforce;
                eq[4].Reinforce = eq[4].Buy * 10;
                eq[4].Product *= 2;
                Cookies += GetProducts();
            }

            //if(GetProducts * 0.05 < click)

            Console.WriteLine("click");
            Console.ReadLine();
            Cookies++;
            Cookies++;
        }        
    }

    private static int GetProducts()
    {
        return 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;
}
0