matr11 [] _ = 0
matr11 (x:xs) n = seln x n + matr11 xs (n+1)
seln [] _ = 0
seln (y:ys) h = if h==1 then y else seln ys (h-1)
diag2 ys =
where
nx
((x :
_) : xs
) = x : nx
(map tail xs
) nx _ = []
testdata = [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500],
[1000,2000,3000,4000,5000],[10000,20000,30000,40000,50000]]
sumd2 matr
= sum (map (\ n
-> (matr
!! n
) !! (k
-n
-1)) [0..k
-1])
sumn2a matr
= sum $ map (\ n
-> (matr
!! n
) !! (n
+1)) [0..k
-2]
main =
do
-- Верхняя побочная диагональ
print $ matr11 testdata
0 print $ matr11 testdata
1 print $ matr11 testdata
2
bWF0cjExIDo6IFtbSW50XV0gLT4gSW50IC0+IEludAptYXRyMTEgW10gXyA9IDAKbWF0cjExICh4OnhzKSBuID0gc2VsbiB4IG4gKyBtYXRyMTEgeHMgKG4rMSkgCiAKc2VsbiA6OiBbSW50XSAtPiBJbnQgLT5JbnQKc2VsbiBbXSBfID0gMApzZWxuICh5OnlzKSBoID0gaWYgaD09MSB0aGVuIHkgZWxzZSBzZWxuIHlzIChoLTEpCiAKZGlhZzIgeXMgPQoJbnggKHJldmVyc2UgeXMpCgl3aGVyZQoJCW54ICgoeCA6IF8pIDogeHMpID0geCA6IG54IChtYXAgdGFpbCB4cykKCQlueCBfID0gW10gCiAKdGVzdGRhdGEgPSBbWzEsMiwzLDQsNV0sWzEwLDIwLDMwLDQwLDUwXSxbMTAwLDIwMCwzMDAsNDAwLDUwMF0sCiAgICAgICAgICAgIFsxMDAwLDIwMDAsMzAwMCw0MDAwLDUwMDBdLFsxMDAwMCwyMDAwMCwzMDAwMCw0MDAwMCw1MDAwMF1dCiAKc3VtZDIgbWF0ciA9ICBzdW0gKG1hcCAoXCBuIC0+IChtYXRyICEhIG4pICEhIChrLW4tMSkpIFswLi5rLTFdKQogICAgICAgICAgICAgIHdoZXJlIGs9bGVuZ3RoIG1hdHIgCiAgICAgICAgICAgICAgCnN1bW4yYSBtYXRyID0gIHN1bSAkIG1hcCAoXCBuIC0+IChtYXRyICEhIG4pICEhIChuKzEpKSBbMC4uay0yXSAKICAgICAgICAgICAgICAgd2hlcmUgaz1sZW5ndGggbWF0ciAgICAgICAgICAgICAgICAKIAptYWluID0gCiAgZG8KICAgIC0tINCS0LXRgNGF0L3Rj9GPINC/0L7QsdC+0YfQvdCw0Y8g0LTQuNCw0LPQvtC90LDQu9GMCiAgICBwcmludCAkICBtYXRyMTEgdGVzdGRhdGEgMAogICAgcHJpbnQgJCAgbWF0cjExIHRlc3RkYXRhIDEKICAgIHByaW50ICQgIG1hdHIxMSB0ZXN0ZGF0YSAyCiAgICBwcmludCAkICBzdW1kMiB0ZXN0ZGF0YSAKICAgIHByaW50ICQgIHN1bW4yYSB0ZXN0ZGF0YSAKCQogICAgcHJpbnQgJCAgZGlhZzIgdGVzdGRhdGEgCiAgICAKICAgIA==