Continuo a non capire perché mi da 0/100. Su tutti i tasks mi da come errore “stringhe diverse”. Ma il programma sembra che funzioni sempre, anche perché ho provato anche inventandomi alcune soluzioni. L’unica cosa che si nota è che con il programma d’esempio, il mio problema mi da un’altra soluzione rispetto a quella di esempio, ma pur sempre valida. Qualcuno potrebbe aiutarmi?
Ecco qui il codice:
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int R,C;
char rettangolo[8][8];
bool isPalindrome(char stringa[])
{
for(int i = 0;i<R/2;i++)
{
if(stringa[i] != stringa[R-i-1] && ((stringa[i] != '0') && (stringa[R-i-1] != '0'))) return false;
}
return true;
}
int main()
{
ifstream in("input.txt");
ofstream out("output.txt");
in >> R >> C;
for (int i = 0; i < R; i++){
char temp[10];
in >> temp;
//cout<<temp<<" ";
for (int j = 0; j < C; j++){
rettangolo[i][j] = temp[j];
//cout<<temp[j]<<" ";
}
}
for(int i = 0;i<C;i++)
{
char prova[10];
for(int j = 0;j<R;j++)
{
prova[j] = rettangolo[j][i];
}
do{
next_permutation(prova,prova+R);
//cout<<prova<<endl;
}while(!isPalindrome(prova));
for(int z = 0;z<R;z++)
{
rettangolo[z][i] = prova[z];
}
}
for(int i = 0;i<R;i++)
{
for(int j = 0;j<C;j++)
{
out<<rettangolo[i][j];
}
out<<endl;
}
return 0;
}