#include<stdio.h>
#define N 2
void matrix_multiply(int a[][N],int ia,int ja,int b[][N],int ib,int jb,int c[][N],int ic,int jc,int n)
{
if(n==1)
c[ic][jc]+=a[ia][ja]*b[ib][jb];
else
{
matrix_multiply(a,ia ,ja ,b,ib ,jb ,c,ic ,jc,n/2);
matrix_multiply(a,ia ,ja+n/2,b,ib+n/2,jb ,c,ic ,jc ,n/2);
matrix_multiply(a,ia ,ja ,b,ib ,jb+n/2,c,ic ,jc+n/2,n/2);
matrix_multiply(a,ia ,ja+n/2,b,ib+n/2,jb+n/2,c,jc ,jc+n/2,n/2);
matrix_multiply(a,ia+n/2,ja ,b,ib ,jb ,c,ic+n/2,jc ,n/2);
matrix_multiply(a,ia+n/2,ja+n/2,b,ib+n/2,jb ,c,ic+n/2,jc ,n/2);
matrix_multiply(a,ia+n/2,ja ,b,ib ,jb+n/2,c,ic+n/2,ic+
#define N 2
void matrix_multiply(int a[][N],int ia,int ja,int b[][N],int ib,int jb,int c[][N],int ic,int jc,int n)
{
if(n==1)
c[ic][jc]+=a[ia][ja]*b[ib][jb];
else
{
matrix_multiply(a,ia ,ja ,b,ib ,jb ,c,ic ,jc,n/2);
matrix_multiply(a,ia ,ja+n/2,b,ib+n/2,jb ,c,ic ,jc ,n/2);
matrix_multiply(a,ia ,ja ,b,ib ,jb+n/2,c,ic ,jc+n/2,n/2);
matrix_multiply(a,ia ,ja+n/2,b,ib+n/2,jb+n/2,c,jc ,jc+n/2,n/2);
matrix_multiply(a,ia+n/2,ja ,b,ib ,jb ,c,ic+n/2,jc ,n/2);
matrix_multiply(a,ia+n/2,ja+n/2,b,ib+n/2,jb ,c,ic+n/2,jc ,n/2);
matrix_multiply(a,ia+n/2,ja ,b,ib ,jb+n/2,c,ic+n/2,ic+