結果

問題 No.539 インクリメント
ユーザー くれちー
提出日時 2017-07-10 21:11:03
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 427 ms / 2,000 ms
コード長 3,684 bytes
コンパイル時間 2,313 ms
コンパイル使用メモリ 114,640 KB
実行使用メモリ 39,168 KB
最終ジャッジ日時 2024-10-07 07:10:27
合計ジャッジ時間 2,562 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 3
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #
プレゼンテーションモードにする

#pragma warning disable IDE1006
#pragma warning disable IDE0011
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using System.Text;
using static System.Convert;
using static System.Math;
using static Extentions;
class IO
{
int idx;
string[] line;
public void R(params char[] sep) { line = Console.ReadLine().Split(sep); idx = 0; }
public string S => line[idx++];
public string[] Ss => line.Skip(idx++).ToArray();
public char C => char.Parse(line[idx++]);
public char[] Cs => line.Skip(idx++).Select(char.Parse).ToArray();
public int I => int.Parse(line[idx++]);
public int[] Is => line.Skip(idx++).Select(int.Parse).ToArray();
public long L => long.Parse(line[idx++]);
public long[] Ls => line.Skip(idx++).Select(long.Parse).ToArray();
public double F => double.Parse(line[idx++]);
public double[] Fs => line.Skip(idx++).Select(double.Parse).ToArray();
public decimal D => decimal.Parse(line[idx++]);
public decimal[] Ds => line.Skip(idx++).Select(decimal.Parse).ToArray();
public BigInteger B => BigInteger.Parse(line[idx++]);
public BigInteger[] Bs => line.Skip(idx++).Select(BigInteger.Parse).ToArray();
public void Write<T>(params T[] xs)
{
Console.Write(xs.First());
foreach (var x in xs.Skip(1)) Console.Write(" " + x);
Console.WriteLine();
}
public void Write(params object[] xs)
{
Console.Write(xs.First());
foreach (var x in xs.Skip(1)) Console.Write(" " + x);
Console.WriteLine();
}
}
static class Extentions
{
public static string CreateString(this IEnumerable<char> seq)
{
return new string(seq.ToArray());
}
}
static class Program
{
public static void Main()
{
#if !DEBUG
Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false });
#endif
Solve(new IO());
Console.Out.Flush();
}
public static void Solve(IO io)
{
io.R();
var t = io.I;
for (var i = 0; i < t; i++)
{
var s = Console.ReadLine();
if (s.All(char.IsLetter))
{
io.Write(s);
continue;
}
var fi = 0;
var ti = -1;
var ds = new Queue<char>();
for (var j = s.Length - 1; j >= 0; j--)
{
if (char.IsDigit(s[j]))
{
if (ti == -1) ti = j;
ds.Enqueue(s[j]);
}
else if (ds.Count > 0)
{
fi = j + 1;
break;
}
}
Console.Write(s.Remove(fi));
if (ds.All(c => c == '9'))
{
Console.Write('1');
Console.Write(Enumerable.Repeat('0', ds.Count).CreateString());
goto fin;
}
var stack = new Stack<char>();
var carried = false;
for (var j = 0; ds.Any(); j++)
{
var d = ds.Dequeue();
if (j == 0) d++;
if (carried) d++;
if (d > '9')
{
stack.Push('0');
carried = true;
}
else
{
stack.Push(d);
carried = false;
}
}
while (stack.Any())
{
Console.Write(stack.Pop());
}
fin:
io.Write(s.Substring(ti + 1));
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0