Jaś zapisał na kartce pewne długie słowo składające się z małych liter angielskiego alfabetu. Teraz chciałby poznać różnorodność jego podsłów. Różnorodność słowa to ilość różnych liter występujących w nim. Na przykład różnorodność słowa kajak to 3, a słowa aaaaaa to 1. Pomóż Jasiowi w policzeniu różnorodności podsłów.
Wejście:
W pierwszym wierszu standardowego wejścia znajduje się liczba N i M (1 < N,M < 100 000) oznaczająca odpowiednio długość słowa i ilość zapytań. W drugim wierszu znajduje się słowo składające się z małych liter alfabetu. W kolejnych M wierszach znajdują się po 2 liczby Ai i Bi (1 < A < B < N) oznaczające, że Jasiu chciałby poznać różnorodnośćpodsłowa od Ai-tej do Bi-tej litery włącznie. Litery w słowie numerujemy od 1 do N.
Wyjście:
Na standardowe wyjście Twój program powinien wypisać M wierszy. W i-tym wierszy powinna się znaleźć różnorodność i-tego podsłowa.
Program ma być napisany w C++, jeśli nie umie ktoś go napisać, proszę chociażby o wytłumaczenie, jak mniej więcej to zrobić, z góry bardzo, ale to bardzo dziękuję.
< - oznacza mniejsze równe.
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
#include <iostream>
using namespace std;
int rozn(char *tab, int pocz, int kon)
{
int ile=0;
char znak = 'a';
char znak_kon = 'z';
for(int x= znak; x<=znak_kon; x++)
{
for(int y=pocz;y<=kon;y++)
{
if (tab[y] == x)
{
ile++;
break;
}
}
}
return ile;
}
int main()
{
char tab[100000]=
"Slowoslowoaddsfksagnaeioujipoqrjioqwhtoqwhnvbvjahiowqrhoiqwtyuhbjkabvk";
int pocz = 12;
int kon = 24;
cout << "Roznorodnosc slowa ";
for(int x = pocz;x<=kon;x++){cout << tab[x];}
cout << " to " << rozn(tab,pocz,kon) <<endl;
system("pause");
return 0;
}