from random import randint, random
NUM_NODES = 1000
NUM_PATHS = 10
CARD_CHANCE = 0.02
start = randint(0,NUM_NODES-1)
end = randint(0,NUM_NODES-1)
while end == start:
end = randint(0,NUM_NODES-1)
U = "abcxxx"
C = "abc"
print(NUM_NODES, start, end)
for i in range(NUM_NODES):
print(NUM_PATHS, end=" ")
existing_paths = set()
for j in range(NUM_PATHS):
while True:
target = randint(0, NUM_NODES-1)
while target == i:
target = randint(0, NUM_NODES-1)
card = U[randint(0,len(U)-1)]
if "{} {} ".format(target, card) not in existing_paths:
existing_paths.add("{} {} ".format(target, card))
break
for item in existing_paths:
print(item, end="")
print()
existing_cards = set()
for i in range(NUM_NODES):
for c in C:
if random() < CARD_CHANCE:
existing_cards.add("{} {} ".format(i, c))
print(len(existing_cards), end=" ")
for item in existing_cards:
print(item, end="")
ZnJvbSByYW5kb20gaW1wb3J0IHJhbmRpbnQsIHJhbmRvbQoKTlVNX05PREVTID0gMTAwMApOVU1fUEFUSFMgPSAxMApDQVJEX0NIQU5DRSA9IDAuMDIKCnN0YXJ0ID0gcmFuZGludCgwLE5VTV9OT0RFUy0xKQplbmQgPSByYW5kaW50KDAsTlVNX05PREVTLTEpCndoaWxlIGVuZCA9PSBzdGFydDoKICAgIGVuZCA9IHJhbmRpbnQoMCxOVU1fTk9ERVMtMSkKClUgPSAiYWJjeHh4IgpDID0gImFiYyIKCnByaW50KE5VTV9OT0RFUywgc3RhcnQsIGVuZCkKCmZvciBpIGluIHJhbmdlKE5VTV9OT0RFUyk6CiAgICBwcmludChOVU1fUEFUSFMsIGVuZD0iICIpCiAgICBleGlzdGluZ19wYXRocyA9IHNldCgpCiAgICBmb3IgaiBpbiByYW5nZShOVU1fUEFUSFMpOgogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIHRhcmdldCA9IHJhbmRpbnQoMCwgTlVNX05PREVTLTEpCiAgICAgICAgICAgIHdoaWxlIHRhcmdldCA9PSBpOgogICAgICAgICAgICAgICAgdGFyZ2V0ID0gcmFuZGludCgwLCBOVU1fTk9ERVMtMSkKICAgICAgICAgICAgY2FyZCA9IFVbcmFuZGludCgwLGxlbihVKS0xKV0KICAgICAgICAgICAgaWYgInt9IHt9ICIuZm9ybWF0KHRhcmdldCwgY2FyZCkgbm90IGluIGV4aXN0aW5nX3BhdGhzOgogICAgICAgICAgICAgICAgZXhpc3RpbmdfcGF0aHMuYWRkKCJ7fSB7fSAiLmZvcm1hdCh0YXJnZXQsIGNhcmQpKQogICAgICAgICAgICAgICAgYnJlYWsKICAgIGZvciBpdGVtIGluIGV4aXN0aW5nX3BhdGhzOgogICAgICAgIHByaW50KGl0ZW0sIGVuZD0iIikKICAgIHByaW50KCkKCmV4aXN0aW5nX2NhcmRzID0gc2V0KCkKZm9yIGkgaW4gcmFuZ2UoTlVNX05PREVTKToKICAgIGZvciBjIGluIEM6CiAgICAgICAgaWYgcmFuZG9tKCkgPCBDQVJEX0NIQU5DRToKICAgICAgICAgICAgZXhpc3RpbmdfY2FyZHMuYWRkKCJ7fSB7fSAiLmZvcm1hdChpLCBjKSkKCnByaW50KGxlbihleGlzdGluZ19jYXJkcyksIGVuZD0iICIpCmZvciBpdGVtIGluIGV4aXN0aW5nX2NhcmRzOgogICAgcHJpbnQoaXRlbSwgZW5kPSIiKQ==