Stavo provando a fare questo problema con next permutation, verificando ogni volta se la permutazione corrente rispetta gli standard richiesti. Non capisco perché il primo testcase mi dia “lunghezza non corretta”, probabilmente è un errore banale
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
ifstream fin("input.txt");
ofstream fout("output.txt");
int main(){
int M;//numero di righe
int N;//numero di caratteri
fin>>M>>N;
string numeri[M];
for(int i=0;i<M;i++)
fin>>numeri[i];
int stop=0;
do{
string prova="";
string mom="";
for(int k=0;k<N;k++){
prova = "";
for(int i=0;i<M;i++){
mom = numeri[i];
prova+=mom[k];
}
for(int j=0;j<M;j++){
if(prova[j]==prova[M-j-1]||prova[j]=='0'||prova[M-1-j]=='0'){
stop=1;
}else{
stop=0;
break;
}
}
if(stop == 0)
break;
}
if(stop==1){
for(int g=0;g<M;g++)
fout << numeri[g]<<endl;
return 0;
}
}while(next_permutation(numeri, numeri+M));
return 0;
}