結果
問題 | No.539 インクリメント |
ユーザー | Tsukasa_Type |
提出日時 | 2018-02-26 17:06:41 |
言語 | Java21 (openjdk 21) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,695 bytes |
コンパイル時間 | 2,319 ms |
コンパイル使用メモリ | 77,896 KB |
実行使用メモリ | 57,604 KB |
最終ジャッジ日時 | 2024-05-03 07:53:54 |
合計ジャッジ時間 | 6,643 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 143 ms
47,200 KB |
testcase_01 | AC | 425 ms
49,272 KB |
testcase_02 | TLE | - |
testcase_03 | -- | - |
ソースコード
import java.util.*; public class Main { static void solve (String[] ar, int n) { String s; int start = -1; int end = -1; StringBuilder sb = new StringBuilder(); StringBuilder num1 = new StringBuilder(); StringBuilder num2 = new StringBuilder(); int leng = 0; int temp = 0; String c; for (int i=0; i<n; i++) { s = ar[i]; for (int j=s.length(); j>=1; j--) { c = s.substring(j-1,j); if (end==-1 && c.matches("[0-9]")) { end = j; start = j; } if (end!=-1 && c.matches("[0-9]")==false) { break; } if (end!=-1 && c.matches("[0-9]")) { start--; } } if (start==-1 && end==-1) { System.out.println(s); } else { sb.append(s); sb.delete(start,end); num1.append(s.substring(start,end)); num2.append(increment(s.substring(start,end))); if (num2.length() < num1.length()) { leng = num1.length()-num2.length(); for (int k=0; k<leng; k++) { num2.insert(0,"0"); } } sb.insert(start,num2); System.out.println(sb); } start = -1; end = -1; sb.setLength(0); num1.setLength(0); num2.setLength(0); } } static String increment (String s) { StringBuilder ans = new StringBuilder(); int up = 1; int temp = 0; for (int i=s.length(); i>=1; i--) { temp = up + Integer.parseInt(s.substring(i-1,i)); ans.insert(0,temp%10); up = temp/10; } if (up!=0) {ans.insert(0,up);} return ans.toString(); } public static void main(String[] args) { int n = sc.nextInt(); sc.nextLine(); String[] ar = new String[n]; for (int i=0; i<n; i++) { ar[i] = sc.nextLine(); } solve(ar,n); } static Scanner sc = new Scanner(System.in); }