結果
問題 | No.539 インクリメント |
ユーザー | bluemegane |
提出日時 | 2021-05-11 11:02:10 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 63 ms / 2,000 ms |
コード長 | 2,051 bytes |
コンパイル時間 | 1,975 ms |
コンパイル使用メモリ | 104,832 KB |
実行使用メモリ | 33,664 KB |
最終ジャッジ日時 | 2024-09-21 16:23:54 |
合計ジャッジ時間 | 2,697 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 20 ms
17,408 KB |
testcase_01 | AC | 47 ms
29,312 KB |
testcase_02 | AC | 63 ms
33,664 KB |
testcase_03 | AC | 62 ms
33,280 KB |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; public class Hello { static void Main() { var T = int.Parse(Console.ReadLine().Trim()); while (T-- > 0) { var s = Console.ReadLine().Trim(); getAns(s); } } static string plus1(string s) { if (s == "") return ""; var sL = s.Length; var sa = s.ToCharArray(); var kup = false; var up = false; var w = sa[sL - 1] - '0' + 1; if (w <= 9) return s.Substring(0, sL - 1) + w.ToString(); else { if (sL == 1) kup = true; up = true; sa[sL - 1] = '0'; var p = sL - 2; while (p >= 0) { w = up ? sa[p] - '0' + 1 : sa[p] - '0'; if (w <= 9) { sa[p] = w.ToString()[0]; break; } else { sa[p] = '0'; if (p == 0) kup = true; } p--; } var w2 = kup ? "1" + new string(sa) : new string(sa); return w2; } } static bool checkNum(char t) { var t2 = t - '0'; return t2 >= 0 && t2 <= 9; } static void getAns(string s) { var sL = s.Length; var p = sL - 1; var ep = -1; while (p >= 0) { if (checkNum(s[p])) { ep = p; p--; break; } p--; } var sp = ep; while (p >= 0) { if (checkNum(s[p])) { sp = p; } else break; p--; } if (sp == -1) Console.WriteLine(s); else { var w = s.Substring(sp, ep - sp + 1); var a2 = plus1(w); string a1; if (sp == 0) a1 = ""; else a1 = s.Substring(0, sp); string a3; if (ep == sL - 1) a3 = ""; else a3 = s.Substring(ep + 1); Console.Write(a1); Console.Write(a2); Console.WriteLine(a3); } } }