fork download
  1. import hashlib, sys, re
  2.  
  3. dico={'dab878d81115f36c48bf013c86d5f606': 'K', '10f5d8418b6ef5b2b86c19233b2827c3': 'Q', 'a2cb83945353b45e8764fed80f8aed7e': 'X', '2c6c9f3398894559db88f3cf2d265fd0': 't', 'e4f44f6a186183c09ea72380c03a827a': 'U', '7cae4dc5f02a6594d9eebe9a35cab963': ':', '04bca1892c6e3ee86ec7d5c51a063d0b': 'v', '088876b0b8118fc9fe833dfce1689e81': 'B', '6f741c1b85ba675417528ef233dc9af7': 'a', '40157001dbbb6ca09bb2c2c94c9a259b': 'r', '508a3aa921d88de37a95106badfdfc3c': 'C', 'c939656432f403a2adc2900b91fd1cad': 'F', '87598a54e7c618c81bd98953535bb4dd': 'O', '874639fb8f0a0cdbc05f14956212fc17': 'A', '98a9dda683e6c352fbbca14c2ed1ce61': 'D', 'bd539ba442f3d599db72aa1926a3354d': 'x', '47f3aac3c3399a319a141df66213fdb1': ';', 'e2a2855fb18a2cb25063a7f397da8c02': 'h', '97c0d52a5a70596807a3c4681af33b23': 'W', 'b0b32ad1d647d3f39d8cfe536d432101': 'L', '9fbd0ea697b179c4d5b722ad88003bee': '=', '3215b6761fb699ccbfb05282440f69ba': 'i', '36c9b974da832031ba898eaa2a7e89b2': 'N', 'fd3f5d42a8accdf70cd9ed3a09ed9dd0': 'g', '5b9ba857cf23d1560e0195d3323675d4': 'w', '93a6e1682503d19edbf63e63029562bb': 'c', '1e00f09f1e0ce616fbe7835377aa04c0': 'l', '058b7c43c21295b0c8367726b3d0116e': '@', '242d34f7e4b51f90de724da6a71b5c32': '\\', '2e2fbbc22b872abed7b3672a65beee9a': 'Y', '3afbea42db32e550288f57cee0cc4ba5': 'S', '0658b21241b9ccb353c9b285bfeb1b06': '^', '1f8b58d28c53cad808747473f4bc9462': '3', '6277e28b59b3e661c3275af4e67afe4e': 'E', 'b73a37b6518c2ef6e331f843dea4f386': 'u', 'd586a0688d97ac4cfdb31c3e93556ae3': 'd', 'af3da8e5d35a13ec03491d343a67e946': '?', '1c8dd7d239b1f0081af116e81a788a06': 'G', '69082c2b0f38e29813e76e932683e970': 'q', '7a7e49cf2d761ca01c1a6dcb89e9474b': 'M', 'bdf8e45b25f0ac1b107879bc1530c297': '[', '0ef82ecca5662ab44b8e296d45cf536d': 'T', '50b7fcc57002611dd1af0deb0ddae4e8': '2', '149807c58df8623aa1a4ec0ac3cea2ca': 'j', 'f4fd3a59f07f92255957330ed956f83b': 'n', '4b559446a5d971734c9bf5f9a550192e': 'V', '53aadd9810dbb124c1becfa406a5f9aa': 'I', '54d1165a60f182c43dc40d2022b86d6e': '6', 'ebb64883280bd403e6a62f6aacabf8d0': 'b', 'f9b6a1683b9cde2a565c67a2e4bf8632': '<', '6f61d6e6cb64dc3eb119ba138c13e7ad': 'k', '8d5006997b374bd02154ead3918f44f1': 'H', '39d8ce292549e62d6d272562b5738b8f': 'e', '41819d45673cc7940ac18eee0822374a': 's', '78c0da22e4362b2958336cad5896c754': 'y', 'e44af7e2493606db03bddbb14ec0b113': 'P', 'ce7a99814b9076927157742e948ec0ce': '1', 'b909eb76956b48447ad681171ba78763': 'm', '56c6162c0a15fcc8ef999131f39bb8e1': 'p', 'e19e6b760748ba2abbcf9da33bb0ad36': 'z', '47f41beaf85137c89324799f9acf58f8': '9', 'cf68213da3ac7631e3a577bd6f2d2a5a': '7', '200b896726aa9698231078c24d5d22b1': '5', '8ba2f30ffd808f685f2b1ed70440f1e7': 'J', '08c9c1a2b8213571bff61cec7fc37d6d': ']', '33f829d463cda1d9def2b4c901bab7f1': '8', 'e4290dac2cfb54f826b0541bbcad8a41': '4', 'fe09f13399d6877815d6c177ca9fa107': 'o', 'b48264ed08b5d2290601a392b1da628d': '_', 'f3ee25f0892154f08e06f3003763d7b5': '`', '261fa48accb3946edc7dc8908e967267': '0', 'e6dd84096dac0e7e4a5b17fce70c9d9f': 'R', '8924e2fbe5c7ac45ec670585d01b2dec': 'f'}
  4. regex=re.compile("G52")
  5.  
  6. prog=[]
  7. for i in sys.stdin:
  8. prog.append(i.replace('\n',''))
  9. prog=prog[6:][::-1][4:][::-1]
  10. #print prog
  11.  
  12. for i in prog:
  13. res=regex.findall(i)
  14. if res:
  15. prog[prog.index(i)]="#"
  16. #print prog
  17.  
  18. chaine=""
  19. for i in prog:
  20. chaine+=i
  21. lstLtr=chaine.split("#")
  22. #print lstLtr
  23.  
  24. solution=""
  25. lettre=""
  26. for i in lstLtr:
  27. m = hashlib.md5()
  28. m.update(i)
  29. if not dico[m.hexdigest()]:
  30. print i, m.hexdigest()
  31. lettre="#"
  32. else:
  33. lettre=dico[m.hexdigest()]
  34. solution+= lettre
  35. print solution
Success #stdin #stdout 0.02s 9240KB
stdin
%
O1234(GRAVURE)
G28G91Z0.Y0.
M6T1
G0G90G54X0.Y0.M3S7500F250.
G43H1Z2.M8
X.288Y10.252
G1Z-.1F125.
X.577F250.
X4.11Y-.202
X3.533
X0.Y10.252
X.288
G0Z2.
G52X6.5Y0
X1.122Y6.747
G1Z-.1F125.
X1.381Y6.572F250.
X1.556Y6.313
X1.615Y6.006
X1.556Y5.698
X1.381Y5.44
X1.122Y5.264
X.815Y5.205
X.507Y5.264
X.249Y5.44
X.073Y5.698
X.014Y6.006
X.073Y6.313
X.249Y6.572
X.507Y6.747
X.815Y6.806
X1.122Y6.747
G0Z2.
X1.113Y1.346
G1Z-.1F125.
X1.373Y1.168F250.
X1.549Y.907
X1.608Y.598
X1.548Y.291
X1.37Y.032
X1.109Y-.143
X.8Y-.202
X.493Y-.143
X.234Y.032
X.059Y.291
X0.Y.598
X.059Y.907
X.234Y1.168
X.493Y1.346
X.8Y1.406
X1.113Y1.346
G0Z2.
G52X10.5Y0
X2.123Y8.774
G1Z-.1F125.
X2.235F250.
Y6.604
X3.778
Y6.099
X2.235
Y1.817
X2.281Y1.28
X2.419Y.952
X2.629Y.784
X2.891Y.728
X3.125Y.765
X3.353Y.876
X3.551Y1.059
X3.699Y1.312
X3.98
X3.675Y.693
X3.266Y.249
X2.797Y-.019
X2.314Y-.108
X1.986Y-.062
X1.665Y.076
X1.39Y.299
X1.197Y.602
X1.083Y1.037
X1.045Y1.658
Y6.099
X0.
Y6.337
X.401Y6.551
X.811Y6.875
X1.203Y7.288
X1.55Y7.772
X2.012Y8.774
X2.123
G0Z2.
G52X17Y0
X1.317Y6.756
G1Z-.1F125.
X1.575Y6.583F250.
X1.751Y6.327
X1.81Y6.02
X1.751Y5.713
X1.575Y5.454
X1.317Y5.278
X1.009Y5.22
X.702Y5.278
X.443Y5.454
X.268Y5.713
X.209Y6.02
X.268Y6.327
X.443Y6.583
X.702Y6.756
X1.009Y6.813
X1.317Y6.756
G0Z2.
X0.Y-2.3
G1Z-.1F125.
Y-2.141F250.
X.659Y-1.829
X.925Y-1.622
X1.15Y-1.381
X1.455Y-.85
X1.532Y-.573
X1.557Y-.288
X1.492Y-.058
X1.391Y.007
X1.045Y-.137
X.771Y-.202
X.454Y-.15
X.209Y.007
X.052Y.256
X0.Y.584
X.068Y.912
X.27Y1.19
X.57Y1.379
X.93Y1.442
X1.161Y1.416
X1.38Y1.338
X1.777Y1.027
X1.94Y.803
X2.056Y.545
X2.125Y.253
X2.149Y-.072
X2.116Y-.437
X2.02Y-.789
X1.859Y-1.127
X1.633Y-1.453
X1.338Y-1.755
X.967Y-2.023
X.521Y-2.258
X0.Y-2.459
Y-2.3
G0Z2.
G52X21.5Y0
X3.172Y-2.646
G1Z-.1F125.
Y-2.927F250.
X0.
Y10.
X3.172
Y9.43
X1.081
Y-2.365
X3.172
Y-2.646
G0Z2.
G52X27Y0
X6.657Y9.639
G1Z-.1F125.
X7.45Y9.187F250.
X8.18Y8.554
X8.79Y7.787
X9.226Y6.93
X9.487Y5.983
X9.575Y4.946
X9.487Y3.879
X9.223Y2.907
X8.784Y2.03
X8.169Y1.247
X7.429Y.604
X6.615Y.144
X5.727Y-.132
X4.766Y-.224
X3.797Y-.134
X2.908Y.135
X2.101Y.584
X1.373Y1.211
X.773Y1.981
X.343Y2.857
X.086Y3.838
X0.Y4.924
X.025Y5.493
X.099Y6.035
X.223Y6.55
X.397Y7.039
X.62Y7.5
X.892Y7.935
X1.214Y8.343
X1.586Y8.724
X2.308Y9.282
X3.098Y9.681
X3.956Y9.92
X4.881Y10.
X5.801Y9.91
X6.657Y9.639
G0Z2.
X3.562Y9.23
G1Z-.1F125.
X3.068Y8.926F250.
X2.639Y8.5
X2.207Y7.824
X1.898Y7.008
X1.713Y6.051
X1.651Y4.953
X1.715Y3.825
X1.907Y2.835
X2.227Y1.983
X2.675Y1.269
X3.099Y.84
X3.587Y.534
X4.138Y.35
X4.751Y.288
X5.41Y.356
X6.008Y.557
X6.547Y.893
X7.026Y1.363
X7.419Y1.977
X7.699Y2.747
X7.867Y3.672
X7.924Y4.751
X7.862Y5.926
X7.677Y6.941
X7.368Y7.797
X6.936Y8.493
X6.501Y8.922
X5.991Y9.229
X5.406Y9.412
X4.744Y9.474
X4.12Y9.413
X3.562Y9.23
G0Z2.
G52X39Y0
G91G28Y0.Z0.M9
M30
%
stdout
\:t;[O