subsetsum <- function(x) {
if(0 %in% x)
return(T)
neg <- x[x < 0]
pos <- x[x > 0]
dif <- sum(pos) + sum(neg)
if(dif == 0)
return(T)
if(0 %in% c(length(neg), length(pos)))
return(F)
for(i in seq_along(x)) {
base <- subsetsum(x[-i])
if(base) return(base)
}
return(base)
}
library(stringr)
bonus <- "[-83314, -82838, -80120, -63468, -62478, -59378, -56958, -50061, -34791, -32264, -21928, -14988, 23767, 24417, 26403, 26511, 36399, 78055]
[-92953, -91613, -89733, -50673, -16067, -9172, 8852, 30883, 46690, 46968, 56772, 58703, 59150, 78476, 84413, 90106, 94777, 95148]
[-94624, -86776, -85833, -80822, -71902, -54562, -38638, -26483, -20207, -1290, 12414, 12627, 19509, 30894, 32505, 46825, 50321, 69294]
[-83964, -81834, -78386, -70497, -69357, -61867, -49127, -47916, -38361, -35772, -29803, -15343, 6918, 19662, 44614, 66049, 93789, 95405]
[-68808, -58968, -45958, -36013, -32810, -28726, -13488, 3986, 26342, 29245, 30686, 47966, 58352, 68610, 74533, 77939, 80520, 87195]
[-97162, -95761, -94672, -87254, -57207, -22163, -20207, -1753, 11646, 13652, 14572, 30580, 52502, 64282, 74896, 83730, 89889, 92200]
[-93976, -93807, -64604, -59939, -44394, -36454, -34635, -16483, 267, 3245, 8031, 10622, 44815, 46829, 61689, 65756, 69220, 70121]
[-92474, -61685, -55348, -42019, -35902, -7815, -5579, 4490, 14778, 19399, 34202, 46624, 55800, 57719, 60260, 71511, 75665, 82754]
[-85029, -84549, -82646, -80493, -73373, -57478, -56711, -42456, -38923, -29277, -3685, -3164, 26863, 29890, 37187, 46607, 69300, 84808]
[-87565, -71009, -49312, -47554, -27197, 905, 2839, 8657, 14622, 32217, 35567, 38470, 46885, 59236, 64704, 82944, 86902, 90487]"
bonus <- str_replace_all(bonus, "[\\[\\],]", "")
input <- read.table(textConnection(bonus))
output <- apply(input, 1, subsetsum)
cat(output, sep = "\n")
c3Vic2V0c3VtIDwtIGZ1bmN0aW9uKHgpIHsKICBpZigwICVpbiUgeCkKICAgIHJldHVybihUKQogIG5lZyA8LSB4W3ggPCAwXQogIHBvcyA8LSB4W3ggPiAwXQogIGRpZiA8LSBzdW0ocG9zKSArIHN1bShuZWcpCiAgaWYoZGlmID09IDApCiAgICByZXR1cm4oVCkKICBpZigwICVpbiUgYyhsZW5ndGgobmVnKSwgbGVuZ3RoKHBvcykpKQogICAgcmV0dXJuKEYpCiAgZm9yKGkgaW4gc2VxX2Fsb25nKHgpKSB7CiAgICBiYXNlIDwtIHN1YnNldHN1bSh4Wy1pXSkKICAgIGlmKGJhc2UpIHJldHVybihiYXNlKQogIH0KICByZXR1cm4oYmFzZSkKfQoKbGlicmFyeShzdHJpbmdyKQoKYm9udXMgPC0gIlstODMzMTQsIC04MjgzOCwgLTgwMTIwLCAtNjM0NjgsIC02MjQ3OCwgLTU5Mzc4LCAtNTY5NTgsIC01MDA2MSwgLTM0NzkxLCAtMzIyNjQsIC0yMTkyOCwgLTE0OTg4LCAyMzc2NywgMjQ0MTcsIDI2NDAzLCAyNjUxMSwgMzYzOTksIDc4MDU1XQpbLTkyOTUzLCAtOTE2MTMsIC04OTczMywgLTUwNjczLCAtMTYwNjcsIC05MTcyLCA4ODUyLCAzMDg4MywgNDY2OTAsIDQ2OTY4LCA1Njc3MiwgNTg3MDMsIDU5MTUwLCA3ODQ3NiwgODQ0MTMsIDkwMTA2LCA5NDc3NywgOTUxNDhdClstOTQ2MjQsIC04Njc3NiwgLTg1ODMzLCAtODA4MjIsIC03MTkwMiwgLTU0NTYyLCAtMzg2MzgsIC0yNjQ4MywgLTIwMjA3LCAtMTI5MCwgMTI0MTQsIDEyNjI3LCAxOTUwOSwgMzA4OTQsIDMyNTA1LCA0NjgyNSwgNTAzMjEsIDY5Mjk0XQpbLTgzOTY0LCAtODE4MzQsIC03ODM4NiwgLTcwNDk3LCAtNjkzNTcsIC02MTg2NywgLTQ5MTI3LCAtNDc5MTYsIC0zODM2MSwgLTM1NzcyLCAtMjk4MDMsIC0xNTM0MywgNjkxOCwgMTk2NjIsIDQ0NjE0LCA2NjA0OSwgOTM3ODksIDk1NDA1XQpbLTY4ODA4LCAtNTg5NjgsIC00NTk1OCwgLTM2MDEzLCAtMzI4MTAsIC0yODcyNiwgLTEzNDg4LCAzOTg2LCAyNjM0MiwgMjkyNDUsIDMwNjg2LCA0Nzk2NiwgNTgzNTIsIDY4NjEwLCA3NDUzMywgNzc5MzksIDgwNTIwLCA4NzE5NV0KWy05NzE2MiwgLTk1NzYxLCAtOTQ2NzIsIC04NzI1NCwgLTU3MjA3LCAtMjIxNjMsIC0yMDIwNywgLTE3NTMsIDExNjQ2LCAxMzY1MiwgMTQ1NzIsIDMwNTgwLCA1MjUwMiwgNjQyODIsIDc0ODk2LCA4MzczMCwgODk4ODksIDkyMjAwXQpbLTkzOTc2LCAtOTM4MDcsIC02NDYwNCwgLTU5OTM5LCAtNDQzOTQsIC0zNjQ1NCwgLTM0NjM1LCAtMTY0ODMsIDI2NywgMzI0NSwgODAzMSwgMTA2MjIsIDQ0ODE1LCA0NjgyOSwgNjE2ODksIDY1NzU2LCA2OTIyMCwgNzAxMjFdClstOTI0NzQsIC02MTY4NSwgLTU1MzQ4LCAtNDIwMTksIC0zNTkwMiwgLTc4MTUsIC01NTc5LCA0NDkwLCAxNDc3OCwgMTkzOTksIDM0MjAyLCA0NjYyNCwgNTU4MDAsIDU3NzE5LCA2MDI2MCwgNzE1MTEsIDc1NjY1LCA4Mjc1NF0KWy04NTAyOSwgLTg0NTQ5LCAtODI2NDYsIC04MDQ5MywgLTczMzczLCAtNTc0NzgsIC01NjcxMSwgLTQyNDU2LCAtMzg5MjMsIC0yOTI3NywgLTM2ODUsIC0zMTY0LCAyNjg2MywgMjk4OTAsIDM3MTg3LCA0NjYwNywgNjkzMDAsIDg0ODA4XQpbLTg3NTY1LCAtNzEwMDksIC00OTMxMiwgLTQ3NTU0LCAtMjcxOTcsIDkwNSwgMjgzOSwgODY1NywgMTQ2MjIsIDMyMjE3LCAzNTU2NywgMzg0NzAsIDQ2ODg1LCA1OTIzNiwgNjQ3MDQsIDgyOTQ0LCA4NjkwMiwgOTA0ODddIgoKYm9udXMgPC0gc3RyX3JlcGxhY2VfYWxsKGJvbnVzLCAiW1xcW1xcXSxdIiwgIiIpCgppbnB1dCA8LSByZWFkLnRhYmxlKHRleHRDb25uZWN0aW9uKGJvbnVzKSkKCm91dHB1dCA8LSBhcHBseShpbnB1dCwgMSwgc3Vic2V0c3VtKQpjYXQob3V0cHV0LCBzZXAgPSAiXG4iKQ==