結果
| 問題 | No.5003 物理好きクリッカー | 
| コンテスト | |
| ユーザー |  vis103 | 
| 提出日時 | 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 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | RE * 32 | 
コンパイルメッセージ
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 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;
}
            
            
            
        