結果
| 問題 |
No.8062 A + B
|
| コンテスト | |
| ユーザー |
mencotton
|
| 提出日時 | 2020-04-01 22:47:33 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 30 ms / 2,000 ms |
| コード長 | 1,274 bytes |
| コンパイル時間 | 3,438 ms |
| コンパイル使用メモリ | 110,232 KB |
| 実行使用メモリ | 18,560 KB |
| 最終ジャッジ日時 | 2024-06-27 12:07:17 |
| 合計ジャッジ時間 | 4,091 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 8 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Numerics;
namespace _0109
{
class Program
{
static string s;
public static int pointer;
static BigInteger number()
{
BigInteger ret = 0;
while (pointer < s.Length && '0' <= s[pointer] && s[pointer] <= '9')
{
ret *= 10;
ret += s[pointer] - '0';
pointer++;
}
return ret;
}
static BigInteger term()
{
BigInteger ret = factor();
while (pointer < s.Length)
{
if (s[pointer] == '*')
{
pointer++;
ret *= factor();
}
else if (s[pointer] == '/')
{
pointer++;
ret /= factor();
}
else break;
}
return ret;
}
static BigInteger expression()
{
BigInteger ret = term();
while (pointer < s.Length)
{
if (s[pointer] == '+')
{
pointer++;
ret += term();
}
else if (s[pointer] == '-')
{
pointer++;
ret -= term();
}
else break;
}
return ret;
}
static BigInteger factor()
{
if (s[pointer] == '(')
{
pointer++;
BigInteger ret = expression();
pointer++;
return ret;
}
else return number();
}
static void Main(string[] args)
{
string[]v = Console.ReadLine().Split();
s = "0" + v[0] + v[1];
pointer = 0;
Console.WriteLine(expression());
}
}
}
mencotton