Бір алмастыру
Шешімді жөнелту
Ұпайлар:
100 (partial)
Уақыт шектеуі:
1.0s
Жад шектеуі:
256M
Author:
Problem types
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Kotlin, Pascal, Perl, PHP, Python, Sed, Text
Әбілмансұр \(S\) жолын тексереді. Ол дәл бір рет \(i < j\) позицияларын таңдап, \(S[i]\) және \(S[j]\) таңбаларын орындарымен ауыстырады. Осындай әрекеттен кейін қанша әртүрлі жол алуға болады?
Енгізу
Бір жол \(S\) (\(2 \le |S| \le 10^6\)), кіші ағылшын әріптерінен тұрады.
Шығару
Дәл бір рет екі таңбаны алмастыру арқылы алынатын әртүрлі жолдардың санын шығарыңыз.
Бағалау жүйесі
| Топ | Қосымша шектеулер | Ұпай | Қажетті топтар |
|---|---|---|---|
| 1 | \(S\) Ұзындығы \(\le 9\) | 20 | — |
| 2 | \(S\) Ұзындығы \(\le 499\) | 20 | 1 |
| 3 | \(S\) тек a және b әріптерінен тұрады | 20 | 1 |
| 4 | Толық шектеулер | 40 | 1, 2, 3 |
Мысалдар
Енгізу 1
aab
Жауап 1
3
Ескертпелер
Жұптар: (1,2) -> aab, (1,3) -> baa, (2,3) -> aba. 3 әртүрлі жол алынады.