/* solutore per il problema bianco_nero. * l'idea dell'algoritmo e' quella di usare due indici, i e j, che puntano rispettivamente al primo elemento e all'ultimo. * Federico Di Marco */ #include int main(void) { char a[1000]; // poteva essere allocato dinamicamente int n,j,i; int dispari=1; int temp; FILE *fr; FILE *fw; fr = fopen( "input.txt", "r" ); fw = fopen( "output.txt", "w" ); fscanf(fr,"%i",&n); //leggo n fgetc(fr); //scarto il carattere di line-feed per passare alla riga dell'array if(n==0) //stringa nulla return 0; fgets(a, n+1, fr); //leggo l'array; ho inserito n+1 perche il carattere n+1-esimo e' escluso //nel caso in cui la stringa sia nulla il programma termina /*if(n==0) return 0; */ //INIZIALIZZO I VALORI DEGLI INDICI i=0; j=n-1; /* distinguo due casi per capire se l'ultimo elemento e il primo fanno parte della stessa "isola" */ //non sono parte della stessa isola if(a[0]!=a[j]){ while(a[j]!=a[0]&&j!=i) j--; while(a[j]==a[0]&&j!=i) j--; } //sono parte della stessa isola else{ while(a[i]==a[0]&&i