foresome [] p = False
foresome (x:xs) p = if (p x) then True
else foresome xs p
remove v
= filter (\x
-> x
/= v
)
delnode
:: (Eq a
) => [[a
]] -> a
-> [[a
]]delnode tree v
= if foresome tree
(\x
-> (head x
) == v
) then do
map (\x
-> if (elem v x
) then ((remove v x
) ++ qq
) else x
) vv
tr = [['r', 'a', 'b'], ['a', 'c', 'd', 'e'], ['b', 'k', 'l', 'm'], ['d', 'f', 'g'], ['k', 'n', 'o'], ['l', 'p']]
main = do
Zm9yZXNvbWUgOjogKEVxIGEpID0+IFthXSAtPiAoYSAtPiBCb29sKSAtPiBCb29sCmZvcmVzb21lIFtdIHAgICAgID0gRmFsc2UKZm9yZXNvbWUgKHg6eHMpIHAgPSBpZiAocCB4KSB0aGVuIFRydWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGZvcmVzb21lIHhzIHAgCgpyZW1vdmUgdiA9IGZpbHRlciAoXHggLT4geCAvPSB2KQoKZGVsbm9kZSA6OiAoRXEgYSkgPT4gW1thXV0gLT4gYSAtPiBbW2FdXQpkZWxub2RlIHRyZWUgdiA9IGlmIGZvcmVzb21lIHRyZWUgKFx4IC0+IChoZWFkIHgpID09IHYpCiAgICAgICAgICAgICAgICAgdGhlbiBkbwogICAgICAgICAgICAgICAgICAgbGV0IHFxID0gdGFpbCAkIGhlYWQgJCBmaWx0ZXIgKFx4IC0+IHYgPT0gaGVhZCB4KSB0cmVlCiAgICAgICAgICAgICAgICAgICBsZXQgdnYgPSBmaWx0ZXIgKFx4IC0+IChoZWFkIHgpIC89IHYpIHRyZWUKICAgICAgICAgICAgICAgICAgIG1hcCAoXHggLT4gaWYgKGVsZW0gdiB4KSB0aGVuICgocmVtb3ZlIHYgeCkgKysgcXEpIGVsc2UgeCkgdnYKICAgICAgICAgICAgICAgICBlbHNlIGZpbHRlciAoXHkgLT4gKHRhaWwgeSkgLz0gW10pIChtYXAgKFx4IC0+IHJlbW92ZSB2IHgpIHRyZWUpCgp0ciA9IFtbJ3InLCAnYScsICdiJ10sIFsnYScsICdjJywgJ2QnLCAnZSddLCBbJ2InLCAnaycsICdsJywgJ20nXSwgWydkJywgJ2YnLCAnZyddLCBbJ2snLCAnbicsICdvJ10sIFsnbCcsICdwJ11dCgptYWluID0gZG8KICBwcmludCAkIHRyCiAgcHJpbnQgJCBkZWxub2RlIHRyICdkJwogIHByaW50ICQgZGVsbm9kZSB0ciAnZyc=
["rab","acde","bklm","dfg","kno","lp"]
["rab","acefg","bklm","kno","lp"]
["rab","acde","bklm","df","kno","lp"]