結果

問題 No.193 筒の数式
ユーザー pekempeypekempey
提出日時 2015-04-26 22:43:40
言語 C#(csc)
(csc 3.9.0)
結果
WA  
実行時間 -
コード長 2,331 bytes
コンパイル時間 1,060 ms
コンパイル使用メモリ 113,988 KB
実行使用メモリ 26,088 KB
最終ジャッジ日時 2024-07-05 03:09:43
合計ジャッジ時間 2,030 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 26 ms
26,056 KB
testcase_01 AC 26 ms
24,044 KB
testcase_02 AC 26 ms
23,664 KB
testcase_03 AC 26 ms
23,888 KB
testcase_04 AC 26 ms
24,052 KB
testcase_05 AC 26 ms
26,056 KB
testcase_06 AC 26 ms
24,048 KB
testcase_07 AC 24 ms
24,044 KB
testcase_08 AC 26 ms
26,064 KB
testcase_09 AC 26 ms
24,116 KB
testcase_10 AC 26 ms
23,920 KB
testcase_11 AC 26 ms
23,628 KB
testcase_12 AC 24 ms
24,016 KB
testcase_13 AC 26 ms
26,088 KB
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace Test
{
    static class Program
    {
        static void Main(string[] args)
        {
            Scanner cin = new Scanner();
            string expr = cin.Next();

            int ans = 0;

            for (int i = 0; i < expr.Length; i++)
            {
                string left = expr.Substring(0, i);
                string right = expr.Substring(i);
                string temp = right + left;

                int val = Eval(temp);
                ans = Math.Max(ans, Eval(temp));
            }

            Console.WriteLine(ans);
        }

        static int Eval(string expr)
        {
            if (expr[0] == '+' || expr[expr.Length - 1] == '+') return 0;
            if (expr[0] == '-' || expr[expr.Length - 1] == '-') return 0;

            List<char> op = new List<char>();

            foreach (var item in expr)
            {
                if (item == '+' || item == '-')
                {
                    op.Add(item);
                }
            }

            string[] vals = expr.Split('+', '-');

            int res = int.Parse(vals[0]);

            for (int i = 0; i < vals.Length - 1; i++)
            {
                if (op[i] == '+')
                {
                    res += int.Parse(vals[i + 1]);
                }
                else
                {
                    res -= int.Parse(vals[i + 1]);
                }
            }

            return res;
        }
    }

    class Scanner
    {
        string[] s;
        int i;

        char[] cs = new char[] { ' ' };

        public Scanner()
        {
            s = new string[0];
            i = 0;
        }

        public string Next()
        {
            if (i < s.Length) return s[i++];
            string st = Console.ReadLine();
            while (st == "") st = Console.ReadLine();
            s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries);
            i = 0;
            return s[i++];
        }

        public int NextInt()
        {
            return int.Parse(Next());
        }

        public long NextLong()
        {
            return long.Parse(Next());
        }

        public double NextDouble()
        {
            return double.Parse(Next());
        }
    }
}
0