結果
問題 | No.539 インクリメント |
ユーザー | Tsukasa_Type |
提出日時 | 2018-02-26 17:03:24 |
言語 | Java21 (openjdk 21) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,716 bytes |
コンパイル時間 | 2,518 ms |
コンパイル使用メモリ | 78,548 KB |
実行使用メモリ | 71,372 KB |
最終ジャッジ日時 | 2024-05-03 07:46:40 |
合計ジャッジ時間 | 7,643 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 147 ms
46,920 KB |
testcase_01 | AC | 429 ms
49,220 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; for (int i=0; i<n; i++) { s = ar[i]; for (int j=s.length(); j>=1; j--) { if (end==-1 && s.substring(j-1,j).matches("[0-9]")) { end = j; start = j; } if (end!=-1 && s.substring(j-1,j).matches("[0-9]")==false) { break; } if (end!=-1 && s.substring(j-1,j).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); }