| Task: | Ositus |
| Sender: | andreibe |
| Submission time: | 2021-10-11 21:41:03 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 40 |
| #2 | ACCEPTED | 25 |
| #3 | ACCEPTED | 35 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.12 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.12 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.12 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.12 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.12 s | 2, 3 | details |
| #6 | ACCEPTED | 0.13 s | 3 | details |
| #7 | ACCEPTED | 0.31 s | 3 | details |
Code
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Scanner;
public class Merkkijono {
static int MODULO = 1_000_000_007;
public static void main(String[] args) throws IOException {
//Scanner scanner = new Scanner(System.in);
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
char[] ar = s.toCharArray();
long total = 1;
int last = -1;
int[] chars = new int[123];
for (int i = 97; i < chars.length; i++) {
chars[i] = -1;
}
long[] totals = new long[s.length()];
long[] removed = new long[s.length()];
long rem=0;
totals[0] = 1;
chars[s.charAt(0)] = 0;
for (int j = 1; j < ar.length; j++) {
char c = ar[j];
int i;
total *= 2;
if ((i = chars[c]) != -1 && i > last) { //sama kirjain
last = i;
long start = removed[i];
if (start >= rem) {
rem += MODULO;
}
long extra = rem - start;
long min = totals[i];
if (min >= total) {
total += MODULO;
}
total -= (min-extra);
rem += (min-extra);
rem = rem % MODULO;
}
totals[j] = total;
removed[j] = rem;
total = total % MODULO;
chars[c] = j;
}
System.out.println(total);
}
}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| a |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| abcdefghij |
| correct output |
|---|
| 512 |
| user output |
|---|
| 512 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| abcabaacbc |
| correct output |
|---|
| 120 |
| user output |
|---|
| 120 |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| aaxxxxxxaa |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 5
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| mfyzvoxmppoxcvktmcjkryyocfweub... |
| correct output |
|---|
| 643221148 |
| user output |
|---|
| 643221148 |
Test 6
Group: 3
Verdict: ACCEPTED
| input |
|---|
| weinscqmmpgbrlboocvtbptgbahmwv... |
| correct output |
|---|
| 831644159 |
| user output |
|---|
| 831644159 |
Test 7
Group: 3
Verdict: ACCEPTED
| input |
|---|
| sxaoxcyrjoeieyinaqxwukgzdnhhsw... |
| correct output |
|---|
| 816016015 |
| user output |
|---|
| 816016015 |
