Skip to content

Instantly share code, notes, and snippets.

@jbasko
Created October 6, 2022 10:32
Show Gist options
  • Save jbasko/fb549066cc32845d92fc1ce6050f919a to your computer and use it in GitHub Desktop.
Save jbasko/fb549066cc32845d92fc1ce6050f919a to your computer and use it in GitHub Desktop.
Koalīciju rēķinātājs
import itertools
frakcijas = [
("JV", 26),
("ZZS", 16),
("AS", 15),
("NA", 13),
("S!", 11),
("LPV", 9),
("PRO", 10),
]
sarkanas_linijas = [
{"NA", "S!"},
{"NA", "PRO"},
{"JV", "S!"},
{"AS", "S!"},
]
for izmers in (3, 4, 5):
for koalicija in itertools.combinations(frakcijas, izmers):
dalibnieki = {f[0] for f in koalicija}
skaits = sum(f[1] for f in koalicija)
if skaits < 51 or skaits >= 70:
continue
nevar = any(dalibnieki & sl == sl for sl in sarkanas_linijas)
if nevar:
continue
print(skaits, sorted(koalicija, key=lambda d: d[1], reverse=True))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment