/*
Nome: Mario
Cognome: Montanari
*/

#include <iostream>
#include <ctime>

#define USO 20
#define DIM 2000
#define VMAX 'z'
#define VMIN  'a'

using namespace std;

typedef struct{
    char ch1;
    char ch2;
}elemento;

typedef struct{
    int CVU; //coppie vocali uguali
    int CCU; //coppie consonanti uguali
    int posizioni[DIM];
}result;

void initArray(elemento arr[], int size){
    for(int i= 0; i < size ; i++){
        arr[i].ch1 = rand()%(VMAX-VMIN+1)+VMIN;
        arr[i].ch2 = rand()%(VMAX-VMIN+1)+VMIN;
    }
}
void stampaArray(elemento arr[], int size){
    for(int i= 0; i < size ; i++){
        if(arr[i].ch1 == arr[i].ch2){
            cout << arr[i].ch1 << endl;
            cout << arr[i].ch2 << endl;
            cout << endl;
        }
    }
}

result risultato(elemento arr[], int size){
    int index=0;
    result risultato = {0,0,0};
    for(int i = 0; i<size ; i++){
        if(arr[i].ch1 == arr[i].ch2){
            risultato.posizioni[index]=i;
             index++;
             
            if(arr[i].ch1 == 'a' || arr[i].ch1 == 'e' || arr[i].ch1 == 'i' || arr[i].ch1 == 'o' || arr[i].ch1 == 'u'){
                 risultato.CVU++;
            }
            else{
                risultato.CCU++;
            }
        }
    }
    return risultato;
}

int main(void){
    srand(time(NULL));
    elemento arr[DIM];
    initArray(arr,USO);
    stampaArray(arr,USO);
    result Result = risultato(arr,USO);
    cout<<"Indici di posizone degli elementi uguali: ";
    for(int loop=0;loop<Result.CCU+Result.CVU;loop++){
        cout<<Result.posizioni[loop]<<" ";
    }
    cout<<endl;
    cout<< "Coppie consonanti uguali:" <<Result.CCU<<endl;
    cout<< "Coppie vocali uguali:" <<Result.CVU<<endl;  
    return 0;
}