提出 #70615419
ソースコード 拡げる
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(System.out);
int t = Integer.parseInt(br.readLine());
while(t-- > 0) {
String A = br.readLine().trim();
String B = br.readLine().trim();
pw.println(solve(A, B));
}
pw.close();
}
static int solve(String A, String B) {
int n = A.length();
// Check if same character frequencies
int[] freqA = new int[2], freqB = new int[2];
for(int i = 0; i < n; i++) {
freqA[A.charAt(i) - '0']++;
freqB[B.charAt(i) - '0']++;
}
if(freqA[0] != freqB[0]) return -1;
// Use Z algorithm on B + "#" + A + A
String s = B + "#" + A + A;
int[] z = zFunction(s);
// Look for matches at positions n+1 to 2n
for(int i = n + 1; i < 2 * n + 1; i++) {
if(z[i] == n) {
return i - n - 1;
}
}
return -1;
}
static int[] zFunction(String s) {
int n = s.length();
int[] z = new int[n];
int l = 0, r = 0;
for(int i = 1; i < n; i++) {
if(i <= r) {
z[i] = Math.min(r - i + 1, z[i - l]);
}
while(i + z[i] < n && s.charAt(z[i]) == s.charAt(i + z[i])) {
z[i]++;
}
if(i + z[i] - 1 > r) {
l = i;
r = i + z[i] - 1;
}
}
return z;
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Shift String |
| ユーザ | addy |
| 言語 | Java24 (OpenJDK 24.0.2) |
| 得点 | 450 |
| コード長 | 1839 Byte |
| 結果 | AC |
| 実行時間 | 219 ms |
| メモリ | 59516 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 450 / 450 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt |
| All | killer_01.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| killer_01.txt | AC | 131 ms | 44760 KiB |
| sample_01.txt | AC | 49 ms | 38528 KiB |
| test_01.txt | AC | 50 ms | 38556 KiB |
| test_02.txt | AC | 50 ms | 38572 KiB |
| test_03.txt | AC | 50 ms | 38464 KiB |
| test_04.txt | AC | 53 ms | 38760 KiB |
| test_05.txt | AC | 69 ms | 39608 KiB |
| test_06.txt | AC | 83 ms | 40828 KiB |
| test_07.txt | AC | 83 ms | 41512 KiB |
| test_08.txt | AC | 214 ms | 54452 KiB |
| test_09.txt | AC | 191 ms | 54424 KiB |
| test_10.txt | AC | 215 ms | 53964 KiB |
| test_11.txt | AC | 219 ms | 52564 KiB |
| test_12.txt | AC | 216 ms | 56020 KiB |
| test_13.txt | AC | 213 ms | 56464 KiB |
| test_14.txt | AC | 205 ms | 58028 KiB |
| test_15.txt | AC | 201 ms | 57780 KiB |
| test_16.txt | AC | 176 ms | 58872 KiB |
| test_17.txt | AC | 133 ms | 47988 KiB |
| test_18.txt | AC | 157 ms | 58040 KiB |
| test_19.txt | AC | 169 ms | 58680 KiB |
| test_20.txt | AC | 184 ms | 58564 KiB |
| test_21.txt | AC | 174 ms | 58740 KiB |
| test_22.txt | AC | 167 ms | 58544 KiB |
| test_23.txt | AC | 208 ms | 59516 KiB |
| test_24.txt | AC | 175 ms | 58748 KiB |
| test_25.txt | AC | 173 ms | 59096 KiB |
| test_26.txt | AC | 191 ms | 58976 KiB |
| test_27.txt | AC | 173 ms | 58552 KiB |
| test_28.txt | AC | 140 ms | 49332 KiB |
| test_29.txt | AC | 140 ms | 47624 KiB |
| test_30.txt | AC | 122 ms | 47724 KiB |
| test_31.txt | AC | 193 ms | 58984 KiB |
| test_32.txt | AC | 123 ms | 47496 KiB |
| test_33.txt | AC | 134 ms | 47880 KiB |
| test_34.txt | AC | 112 ms | 47180 KiB |
| test_35.txt | AC | 169 ms | 59100 KiB |
| test_36.txt | AC | 138 ms | 47512 KiB |
| test_37.txt | AC | 108 ms | 46852 KiB |
| test_38.txt | AC | 132 ms | 48228 KiB |
| test_39.txt | AC | 171 ms | 58696 KiB |
| test_40.txt | AC | 122 ms | 48392 KiB |
| test_41.txt | AC | 119 ms | 47500 KiB |
| test_42.txt | AC | 134 ms | 47188 KiB |
| test_43.txt | AC | 173 ms | 58788 KiB |
| test_44.txt | AC | 160 ms | 59372 KiB |
| test_45.txt | AC | 170 ms | 58684 KiB |
| test_46.txt | AC | 169 ms | 58612 KiB |
| test_47.txt | AC | 94 ms | 43248 KiB |
| test_48.txt | AC | 95 ms | 43340 KiB |
| test_49.txt | AC | 127 ms | 47684 KiB |
| test_50.txt | AC | 145 ms | 48304 KiB |