#include <stdio.h>
int is_magic(int *m, size_t size)
{
int sum = 0;
for(size_t col = 0; col < size; col++)
{
sum += m[col];
}
for(size_t row = 1; row < size; row++)
{
int psum = 0;
for(size_t col = 0; col < size; col++)
{
psum += m[col + row * size];
}
if(psum != sum) return 0;
}
for(size_t col = 0; col < size; col++)
{
int psum = 0;
for(size_t row = 0; row < size; row++)
{
psum += m[col + row * size];
}
if(psum != sum) return 0;
}
return 1;
}
int m[3][3] =
{
{8, 1, 6},
{3, 5, 7},
{4, 9, 2},
};
int m1[3][3] =
{
{8, 1, 6},
{3, 9, 7},
{4, 9, 2},
};
int main()
{
printf("%d\n", is_magic
(m
,3)); printf("%d\n", is_magic
(m1
,3));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKaW50IGlzX21hZ2ljKGludCAqbSwgc2l6ZV90IHNpemUpCnsKICAgIGludCBzdW0gPSAwOwogICAgCiAgICBmb3Ioc2l6ZV90IGNvbCA9IDA7IGNvbCA8IHNpemU7IGNvbCsrKQogICAgewogICAgICAgIHN1bSArPSBtW2NvbF07CiAgICB9CgogICAgZm9yKHNpemVfdCByb3cgPSAxOyByb3cgPCBzaXplOyByb3crKykKICAgIHsKICAgICAgICBpbnQgcHN1bSA9IDA7CiAgICAgICAgZm9yKHNpemVfdCBjb2wgPSAwOyBjb2wgPCBzaXplOyBjb2wrKykKICAgICAgICB7CiAgICAgICAgICAgIHBzdW0gKz0gbVtjb2wgKyByb3cgKiBzaXplXTsKICAgICAgICB9CiAgICAgICAgaWYocHN1bSAhPSBzdW0pIHJldHVybiAwOwogICAgfQogICAgCiAgICBmb3Ioc2l6ZV90IGNvbCA9IDA7IGNvbCA8IHNpemU7IGNvbCsrKQogICAgewogICAgICAgIGludCBwc3VtID0gMDsKICAgICAgICBmb3Ioc2l6ZV90IHJvdyA9IDA7IHJvdyA8IHNpemU7IHJvdysrKQogICAgICAgIHsKICAgICAgICAgICAgcHN1bSArPSBtW2NvbCArIHJvdyAqIHNpemVdOwogICAgICAgIH0KICAgICAgICBpZihwc3VtICE9IHN1bSkgcmV0dXJuIDA7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKaW50IG1bM11bM10gPSAKewogICAgezgsIDEsIDZ9LAogICAgezMsIDUsIDd9LAogICAgezQsIDksIDJ9LAp9OwoKaW50IG0xWzNdWzNdID0gCnsKICAgIHs4LCAxLCA2fSwKICAgIHszLCA5LCA3fSwKICAgIHs0LCA5LCAyfSwKfTsKCgppbnQgbWFpbigpCnsKICAgIHByaW50ZigiJWRcbiIsIGlzX21hZ2ljKG0sMykpOwogICAgcHJpbnRmKCIlZFxuIiwgaXNfbWFnaWMobTEsMykpOwoKICAgIHJldHVybiAwOwp9CgoK