Ois_painting Fractal Painting 05/100

Con questo codice riesco a risolvere i due esempi posti sotto il problema.
Però ottengo 05/100… :disappointed_relieved:

#include<iostream>
#include<fstream>
#include<math.h>

using namespace std;

int main()
{

ifstream leggi("input.txt");ofstream scrivi("output.txt");

int N,K;
leggi>>N>>K;
bool change = true;

long int max= pow(N,K);
char stand[N][N];
char temp[max][max];
 char m[max][max];

for(int i=0; i<max;i++){
	for(int k=0;k<max;k++){
		if(i<N && k<N){
			leggi>>m[i][k];
			temp[i][k]=m[i][k];
			stand[i][k]=m[i][k];
		}else{
		
			
		}
		
	}
	
}
for(int i=1;i<=K;i++){//as many times as k
	change=!change;	
	for(int k=0;k<=pow(N,i);k++){//esamina le righe della matrice in riferimento
		for(int j=0;j<= pow(N,i);j++){//esamina le colonne della matrice in riferimento
			if(change==false){
				if(m[k][j]=='.'){
					for(int y=0;y<N;y++){
						for(int x=0;x<N;x++){
							temp[(k*N)+y][(j*N)+x]=stand[y][x];
						}
					}	
				}else if(m[k][j]=='*'){
					for(int y=0;y<N;y++){
						for(int x=0;x<N;x++){
							temp[(k*N)+y][(j*N)+x]='*';
						}
					}		
				}	
			}else{
				
				if(temp[k][j]=='.'){
					for(int y=0;y<N;y++){
						for(int x=0;x<N;x++){
							m[(k*N)+y][(j*N)+x]=stand[y][x];
						}
					}	
				}else if(temp[k][j]=='*'){
					for(int y=0;y<N;y++){
						for(int x=0;x<N;x++){
							m[(k*N)+y][(j*N)+x]='*';
						}
					}		
				}
			}
		}
	}	
}
		
	for(int i=0; i<max;i++){
		for(int k=0;k<max;k++){

			scrivi<<m[i][k];
		
		}
	scrivi<<endl;
	}	
		

}