CSES - Datatähti 2016 alku - Osajono
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Merkkijonon osajono on yhtenäinen merkkijonosta valittu osa. Esimerkiksi merkkijono ABAC sisältää osajonot A, B, A, C, AB, BA, AC, ABA, BAC ja ABAC.

Sinulle on annettu merkkijono, ja tehtäväsi on laskea, monessako merkkijonon osajonossa ensimmäinen ja viimeinen merkki on sama.

Esimerkiksi merkkijonossa ABAC vastaus on 5, koska osajonoissa A, B, A, C ja ABA ensimmäinen ja viimeinen merkki on sama.

Syöte

Syötteen ainoalla rivillä on merkkijono, jossa on n merkkiä ja jokainen merkki on välillä A–Z.

Tuloste

Ohjelmasi tulee tulostaa yksi kokonaisluku: haluttujen osajonojen määrä.

Esimerkki 1

Syöte:

ABAC

Tuloste:

5

Esimerkki 2

Syöte:

AABACBABBA

Tuloste:

26

Osatehtävä 1 (12 pistettä)

  • 1 \le n \le 100

Osatehtävä 2 (27 pistettä)

  • 1 \le n \le 5000

Osatehtävä 3 (61 pistettä)

  • 1 \le n \le 10^5