結果
| 問題 | No.539 インクリメント |
| コンテスト | |
| ユーザー |
くれちー
|
| 提出日時 | 2017-07-02 10:58:27 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 5,006 bytes |
| 記録 | |
| コンパイル時間 | 1,025 ms |
| コンパイル使用メモリ | 116,840 KB |
| 実行使用メモリ | 47,720 KB |
| 最終ジャッジ日時 | 2024-10-05 07:14:21 |
| 合計ジャッジ時間 | 5,280 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 2 TLE * 1 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
#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;
#pragma warning disable IDE0007
#pragma warning disable IDE0009
#pragma warning disable IDE1006
#region ref. https://yukicoder.me/submissions/182781 (Apache License 2.0)
using System.Globalization;
public class Printer : StreamWriter
{
static Printer()
{
Out = new Printer(Console.OpenStandardOutput()) { AutoFlush = false };
}
public static Printer Out { get; set; }
public override IFormatProvider FormatProvider
{
get { return CultureInfo.InvariantCulture; }
}
public Printer(Stream stream) : base(stream, new UTF8Encoding(false, true))
{
}
public Printer(Stream stream, Encoding encoding) : base(stream, encoding)
{
}
public void Write<T>(string format, T[] source)
{
base.Write(format, source.OfType<object>().ToArray());
}
public void WriteLine<T>(string format, T[] source)
{
base.WriteLine(format, source.OfType<object>().ToArray());
}
}
public class StreamScanner
{
public StreamScanner(Stream stream)
{
str = stream;
}
public readonly Stream str;
private readonly byte[] buf = new byte[1024];
private int len, ptr;
public bool isEof;
public bool IsEndOfStream
{
get { return isEof; }
}
private byte read()
{
if (isEof) return 0;
if (ptr < len) return buf[ptr++];
ptr = 0;
if ((len = str.Read(buf, 0, 1024)) > 0) return buf[ptr++];
isEof = true;
return 0;
}
public char Char()
{
byte b;
do b = read(); while ((b < 33 || 126 < b) && !isEof);
return (char)b;
}
public string Scan()
{
var sb = new StringBuilder();
for (var b = Char(); b >= 33 && b <= 126; b = (char)read())
sb.Append(b);
return sb.ToString();
}
public string ScanLine()
{
var sb = new StringBuilder();
for (var b = Char(); b != '\n'; b = (char)read())
if (b == 0) break;
else if (b != '\r') sb.Append(b);
return sb.ToString();
}
public long Long()
{
if (isEof) return long.MinValue;
long ret = 0;
byte b;
var ng = false;
do b = read(); while (b != 0 && b != '-' && (b < '0' || '9' < b));
if (b == 0) return long.MinValue;
if (b == '-')
{
ng = true;
b = read();
}
for (; ; b = read())
{
if (b < '0' || '9' < b)
return ng ? -ret : ret;
ret = ret * 10 + b - '0';
}
}
public int Integer()
{
return (isEof) ? int.MinValue : (int)Long();
}
public double Double()
{
var s = Scan();
return s != "" ? double.Parse(s, CultureInfo.InvariantCulture) : double.NaN;
}
static T[] enumerate<T>(int n, Func<T> f)
{
var a = new T[n];
for (int i = 0; i < n; ++i) a[i] = f();
return a;
}
public char[] Char(int n)
{
return enumerate(n, Char);
}
public string[] Scan(int n)
{
return enumerate(n, Scan);
}
public double[] Double(int n)
{
return enumerate(n, Double);
}
public int[] Integer(int n)
{
return enumerate(n, Integer);
}
public long[] Long(int n)
{
return enumerate(n, Long);
}
}
#endregion
#pragma warning restore IDE0007
#pragma warning restore IDE0009
#pragma warning restore IDE1006
static class Extentions
{
}
static class Program
{
static void Main()
{
Solve(new StreamScanner(Console.OpenStandardInput()));
Printer.Out.Flush();
}
static void Solve(StreamScanner sc)
{
var t = sc.Integer();
for (var i = 0; i < t; i++)
{
var olds = sc.ScanLine();
var nonDigits = Enumerable.Range(32, 126)
.Select(x => (char)x).Where(c => !char.IsDigit(c)).ToArray();
var oldsubs = olds.Split(nonDigits).LastOrDefault(s => s.Length > 0);
if (oldsubs == null) { Printer.Out.WriteLine(olds); continue; }
var idx = olds.LastIndexOf(oldsubs);
var newsubs = Up(oldsubs);
var news = olds.Remove(idx, oldsubs.Length).Insert(idx, newsubs);
Printer.Out.WriteLine(news);
}
}
static string Up(string str)
{
var sb = new StringBuilder(str);
for (var i = str.Length - 1; i >= 0; i--)
{
if (sb[i] < '9') { sb[i]++; break; }
else sb[i] = '0';
}
var len = str.Length - sb.Length;
if (len > 0) sb.Insert(0, "0", len);
if (str.All(c => c == '9')) sb.Insert(0, "1");
return sb.ToString();
}
}
くれちー