Wednesday, October 10, 2007

Jawaban The Chosen Sub Matrix

#include
#include
#include
#include
#include
typedef int MatriksInt[20][20];
void buatsubmatrik(MatriksInt x,MatriksInt &matriksbaru,int ukuran2,int baris,int kolom);
int jumlahelemen(MatriksInt x,int ukuran1);
void display(MatriksInt matriks,int ukuran1);
bool cekelemen(int array[10],int x);
void createEmptyArray(int array[10]);
void PrintfArray(int array[10]);

int main()
{
char N;
int hasil=100;
int hasilbaris,hasilkolom;
int baca=0;
int ukuran2=0;
int ukuran1=0;
int baris,kolom;
MatriksInt matriks;
MatriksInt submatriks;
while (scanf( "%d", &N ) != EOF )
{
ukuran1=N;
scanf("%d",&ukuran2);
//printf("%d %d\n",ukuran1, ukuran2);
for(int i=0;i
{
for(int j=0;j
{
scanf("%d",&matriks[i][j]);
}
}
display(matriks,ukuran1);
//buatsubmatrik(matriks,submatriks,ukuran2,4,2);
//display(submatriks,ukuran2);
//printf("Jumlah Elemen =%d",jumlahelemen(submatriks,ukuran2));
for(int i=0;i
{
for(int j=0;j
{
if((ukuran1 - i> ukuran2-1)&&(ukuran1 - j> ukuran2-1))
{
buatsubmatrik(matriks,submatriks,ukuran2,i,j);
//display(submatriks,ukuran2);
//printf("\n");
if(jumlahelemen(submatriks,ukuran2)
{
hasil=jumlahelemen(submatriks,ukuran2);
hasilbaris=i;
hasilkolom=j;
}
}
}
//printf("\n");
}
printf("%d %d \n",hasilbaris+1,hasilkolom+1);
hasil=100;
}
return 0;
}
void buatsubmatrik(MatriksInt x,MatriksInt &matriksbaru,int ukuran2,int baris,int kolom)
{ int i=0,j=0;
for(int bantu=baris;bantu<=ukuran2+baris;bantu++)
{
for(int bantu2=kolom;bantu2<=ukuran2+kolom;bantu2++)
{
matriksbaru[i][j]=x[bantu][bantu2];
j++;
}
j=0;
i++;
}
}
int jumlahelemen(MatriksInt x,int ukuran2)//mereturnkan berapa elemen yang berbeda belum oke
{
int array[10];createEmptyArray(array);
int p=0;
for(int i=0;i
{
for(int j=0;j
{
if(!cekelemen(array,x[i][j]))
{
array[p++]=x[i][j];
}
}
}
return p;
}
bool cekelemen(int array[10],int x) //untuk mengecek elemen apakah ada yang sama di dalam array
{
bool ketemu=false;
for(int j=0;j<10;j++)
{
if((array[j]==x)&& !ketemu)
{
ketemu=true;
}
}
return ketemu;
}
void display(MatriksInt matriks,int ukuran1)
{
for(int i=0;i
{
for(int j=0;j
{
printf("%d ",matriks[i][j]);
}
printf("\n");
}
}
void createEmptyArray(int array[10])
{
for(int j=0;j<10;j++)
{
array[j]=NULL;
}
}
void PrintfArray(int array[10])
{
for(int j=0;j<10;j++)
{
printf("%d ",array[j]);
}
}

No comments: