Submission #188395
Source Code Expand
#!/usr/bin/env python2.7
import sys
from collections import namedtuple
from cStringIO import StringIO
import unittest
import cProfile
def main():
N, D = (int(x) for x in sys.stdin.readline().split())
X, Y = (int(x) for x in sys.stdin.readline().split())
print solve(N, D, X, Y)
cc = [[1]]
for i in xrange(1,1001):
ccl = [1]
for j in xrange(1,i):
ccl.append(cc[-1][j-1] + cc[-1][j])
ccl.append(1)
cc.append(ccl)
def comb(A, B):
return cc[A][B]
def count(a, b, c, d):
P = (a, b, c, d)
N = sum(P)
return comb(N, a) * comb(N - a, b) * comb(N - a - b, c)
def subsolve(N, X, Y):
X = abs(X)
Y = abs(Y)
R = N - X - Y
if R % 2 != 0:
return 0
R /= 2
res = 0
for rx in xrange(R+1):
ry = R - rx
res += count(X+rx, rx, Y+ry, ry)
D = 10 ** 11
return float((res * D) / (4 ** N)) / D
def solve(N, D, X, Y):
if X % D != 0 or Y % D != 0:
return 0
return subsolve(N, X / D, Y / D)
class Test(unittest.TestCase):
@staticmethod
def tryone(indata):
sys.stdin = StringIO(indata)
out = sys.stdout = StringIO()
main()
return out.getvalue()
def test20(self):
self.assertEqual(comb(0,0), 1)
self.assertEqual(comb(1,0), 1)
self.assertEqual(comb(1,1), 1)
self.assertEqual(comb(2,0), 1)
self.assertEqual(comb(2,1), 2)
self.assertEqual(comb(2,2), 1)
self.assertEqual(comb(3,0), 1)
self.assertEqual(comb(3,1), 3)
self.assertEqual(comb(3,2), 3)
self.assertEqual(comb(3,3), 1)
def test50(self):
self.assertAlmostEqual(solve(2, 10000000, 10000000, 10000000), 0.125)
self.assertAlmostEqual(solve(100, 2, 3, 7), 0)
self.assertAlmostEqual(solve(11, 8562174, 25686522, 17124348), 0.018174648284912)
def test80(self):
L = 123456789
solve(1000, L, 0, 0)
def test90(self):
self.assertEqual(self.tryone("""\
2 10000000
10000000 10000000
"""), """0.125\n""")
if __name__ == '__main__':
if len(sys.argv) > 1:
print "_/" * 30 + str(sys.argv)
if sys.argv[1] == '-p':
sys.argv.pop(1)
cProfile.run("unittest.main(exit=False, failfast=True)", sort='time')
else:
unittest.main()
else:
main()
Submission Info
Submission Time |
|
Task |
D - 大ジャンプ |
User |
over80 |
Language |
Python (2.7.3) |
Score |
101 |
Code Size |
2447 Byte |
Status |
AC |
Exec Time |
470 ms |
Memory |
57036 KB |
Judge Result
Set Name |
part1 |
part2 |
All |
Score / Max Score |
90 / 90 |
10 / 10 |
1 / 1 |
Status |
|
|
|
Set Name |
Test Cases |
part1 |
test_1_151403858_0_0AB.txt, test_1_1_0_1AB.txt, test_1_1_2_0AB.txt, test_1_200416616_-430405070_-79858930AB.txt, test_1_320861287_0_0AB.txt, test_1_445441131_0_0AB.txt, test_2_91743015_0_183486030AB.txt, test_3_165357536_496072608_0AB.txt, test_3_357154050_-106436394_768502001AB.txt, test_3_721501125_-568833455_353553641AB.txt, test_3_893846474_0_0AB.txt, test_4_291388018_-291388018_0AB.txt, test_5_318547875_955643625_-637095750AB.txt, test_5_704387671_-704387671_0AB.txt, test_5_82323965_639854915_-688317394AB.txt, test_6_187422602_374845204_-374845204AB.txt, test_6_346164451_0_0AB.txt, test_6_99058019_194123640_-837769837AB.txt, test_7_166330212_166330212_-332660424AB.txt, test_7_89698746_448493730_-179397492AB.txt, test_8_10000000_-40000000_-40000000AB.txt, test_8_10000000_0_80000000AB.txt, test_8_10000000_80000000_0AB.txt |
part2 |
test_10_227248639_454497278_0B.txt, test_11_692637325_-181424149_-938839075B.txt, test_13_260236679_-780710037_-520473358B.txt, test_13_269280357_807841071_269280357B.txt, test_13_96859935_0_-581159610B.txt, test_16_40374395_-40374395_-565241530B.txt, test_1_151403858_0_0AB.txt, test_1_1_0_1AB.txt, test_1_1_2_0AB.txt, test_1_200416616_-430405070_-79858930AB.txt, test_1_320861287_0_0AB.txt, test_1_445441131_0_0AB.txt, test_21_304856339_609712678_914569017B.txt, test_26_214390232_-857560928_428780464B.txt, test_2_91743015_0_183486030AB.txt, test_30_10000000_-300000000_0B.txt, test_30_10000000_0_300000000B.txt, test_30_10000000_150000000_-150000000B.txt, test_30_54228128_0_813421920B.txt, test_3_165357536_496072608_0AB.txt, test_3_357154050_-106436394_768502001AB.txt, test_3_721501125_-568833455_353553641AB.txt, test_3_893846474_0_0AB.txt, test_4_291388018_-291388018_0AB.txt, test_5_318547875_955643625_-637095750AB.txt, test_5_704387671_-704387671_0AB.txt, test_5_82323965_639854915_-688317394AB.txt, test_6_187422602_374845204_-374845204AB.txt, test_6_346164451_0_0AB.txt, test_6_99058019_194123640_-837769837AB.txt, test_7_166330212_166330212_-332660424AB.txt, test_7_89698746_448493730_-179397492AB.txt, test_8_10000000_-40000000_-40000000AB.txt, test_8_10000000_0_80000000AB.txt, test_8_10000000_80000000_0AB.txt, test_9_283198156_849594468_849594468B.txt |
All |
test_1000_1000000_-500000000_500000000.txt, test_1000_1000000_0_-1000000000.txt, test_1000_1000000_1000000000_0.txt, test_1000_150305_97998860_-32315575.txt, test_1000_1_0_0.txt, test_1000_1_2_0.txt, test_1000_1_2_2.txt, test_1000_3308678_-800700076_-350719868.txt, test_1000_3608549_811923525_689232859.txt, test_1000_3728577_-145414503_-969430020.txt, test_1000_537976_11297496_224335992.txt, test_10_227248639_454497278_0B.txt, test_11_692637325_-181424149_-938839075B.txt, test_130_95365311_-667557177_-286095933.txt, test_131_18204705_-145637640_0.txt, test_13_260236679_-780710037_-520473358B.txt, test_13_269280357_807841071_269280357B.txt, test_13_96859935_0_-581159610B.txt, test_16_40374395_-40374395_-565241530B.txt, test_1_151403858_0_0AB.txt, test_1_1_0_1AB.txt, test_1_1_2_0AB.txt, test_1_200416616_-430405070_-79858930AB.txt, test_1_320861287_0_0AB.txt, test_1_445441131_0_0AB.txt, test_210_28974130_0_260767170.txt, test_217_321156_24407856_22480920.txt, test_21_304856339_609712678_914569017B.txt, test_26_214390232_-857560928_428780464B.txt, test_289_421462830_-487186374_-417635361.txt, test_2_91743015_0_183486030AB.txt, test_30_10000000_-300000000_0B.txt, test_30_10000000_0_300000000B.txt, test_30_10000000_150000000_-150000000B.txt, test_30_54228128_0_813421920B.txt, test_339_4475128_957677392_281933064.txt, test_3_165357536_496072608_0AB.txt, test_3_357154050_-106436394_768502001AB.txt, test_3_721501125_-568833455_353553641AB.txt, test_3_893846474_0_0AB.txt, test_480_402960_-131767920_-34654560.txt, test_4_291388018_-291388018_0AB.txt, test_507_3516183_-879045750_-253165176.txt, test_515_8606048_-25818144_8606048.txt, test_522_2286376_-230923976_-18291008.txt, test_5_318547875_955643625_-637095750AB.txt, test_5_704387671_-704387671_0AB.txt, test_5_82323965_639854915_-688317394AB.txt, test_676_198114948_0_792459792.txt, test_688_151937211_-286341114_10198771.txt, test_6_187422602_374845204_-374845204AB.txt, test_6_346164451_0_0AB.txt, test_6_99058019_194123640_-837769837AB.txt, test_71_367604060_367604060_0.txt, test_752_120973200_0_-725839200.txt, test_772_881340073_0_0.txt, test_777_125719576_-499451637_822057459.txt, test_7_166330212_166330212_-332660424AB.txt, test_7_89698746_448493730_-179397492AB.txt, test_839_166155061_0_-332310122.txt, test_839_923157_923157_564972084.txt, test_849_415705_290993500_0.txt, test_873_418406_2928842_322172620.txt, test_8_10000000_-40000000_-40000000AB.txt, test_8_10000000_0_80000000AB.txt, test_8_10000000_80000000_0AB.txt, test_981_159373724_-637494896_-159373724.txt, test_9_283198156_849594468_849594468B.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
452 ms |
57008 KB |
sample_02.txt |
AC |
458 ms |
56900 KB |
sample_03.txt |
AC |
453 ms |
56816 KB |
test_1000_1000000_-500000000_500000000.txt |
AC |
456 ms |
56892 KB |
test_1000_1000000_0_-1000000000.txt |
AC |
458 ms |
57020 KB |
test_1000_1000000_1000000000_0.txt |
AC |
456 ms |
57032 KB |
test_1000_150305_97998860_-32315575.txt |
AC |
454 ms |
57016 KB |
test_1000_1_0_0.txt |
AC |
450 ms |
57020 KB |
test_1000_1_2_0.txt |
AC |
452 ms |
56892 KB |
test_1000_1_2_2.txt |
AC |
459 ms |
57024 KB |
test_1000_3308678_-800700076_-350719868.txt |
AC |
456 ms |
56952 KB |
test_1000_3608549_811923525_689232859.txt |
AC |
449 ms |
57024 KB |
test_1000_3728577_-145414503_-969430020.txt |
AC |
447 ms |
57024 KB |
test_1000_537976_11297496_224335992.txt |
AC |
460 ms |
57020 KB |
test_10_227248639_454497278_0B.txt |
AC |
450 ms |
57020 KB |
test_11_692637325_-181424149_-938839075B.txt |
AC |
456 ms |
57020 KB |
test_130_95365311_-667557177_-286095933.txt |
AC |
462 ms |
57028 KB |
test_131_18204705_-145637640_0.txt |
AC |
447 ms |
56920 KB |
test_13_260236679_-780710037_-520473358B.txt |
AC |
457 ms |
57036 KB |
test_13_269280357_807841071_269280357B.txt |
AC |
448 ms |
56892 KB |
test_13_96859935_0_-581159610B.txt |
AC |
447 ms |
57020 KB |
test_16_40374395_-40374395_-565241530B.txt |
AC |
452 ms |
57020 KB |
test_1_151403858_0_0AB.txt |
AC |
447 ms |
56848 KB |
test_1_1_0_1AB.txt |
AC |
459 ms |
57016 KB |
test_1_1_2_0AB.txt |
AC |
448 ms |
57020 KB |
test_1_200416616_-430405070_-79858930AB.txt |
AC |
456 ms |
57028 KB |
test_1_320861287_0_0AB.txt |
AC |
450 ms |
57020 KB |
test_1_445441131_0_0AB.txt |
AC |
443 ms |
56900 KB |
test_210_28974130_0_260767170.txt |
AC |
446 ms |
57016 KB |
test_217_321156_24407856_22480920.txt |
AC |
452 ms |
57032 KB |
test_21_304856339_609712678_914569017B.txt |
AC |
452 ms |
57016 KB |
test_26_214390232_-857560928_428780464B.txt |
AC |
452 ms |
57016 KB |
test_289_421462830_-487186374_-417635361.txt |
AC |
444 ms |
56916 KB |
test_2_91743015_0_183486030AB.txt |
AC |
458 ms |
56844 KB |
test_30_10000000_-300000000_0B.txt |
AC |
457 ms |
56832 KB |
test_30_10000000_0_300000000B.txt |
AC |
449 ms |
57036 KB |
test_30_10000000_150000000_-150000000B.txt |
AC |
448 ms |
57012 KB |
test_30_54228128_0_813421920B.txt |
AC |
456 ms |
57032 KB |
test_339_4475128_957677392_281933064.txt |
AC |
453 ms |
57028 KB |
test_3_165357536_496072608_0AB.txt |
AC |
455 ms |
57024 KB |
test_3_357154050_-106436394_768502001AB.txt |
AC |
470 ms |
57020 KB |
test_3_721501125_-568833455_353553641AB.txt |
AC |
459 ms |
57024 KB |
test_3_893846474_0_0AB.txt |
AC |
467 ms |
57028 KB |
test_480_402960_-131767920_-34654560.txt |
AC |
443 ms |
57028 KB |
test_4_291388018_-291388018_0AB.txt |
AC |
456 ms |
57024 KB |
test_507_3516183_-879045750_-253165176.txt |
AC |
464 ms |
57024 KB |
test_515_8606048_-25818144_8606048.txt |
AC |
459 ms |
57020 KB |
test_522_2286376_-230923976_-18291008.txt |
AC |
449 ms |
57024 KB |
test_5_318547875_955643625_-637095750AB.txt |
AC |
458 ms |
57016 KB |
test_5_704387671_-704387671_0AB.txt |
AC |
457 ms |
56852 KB |
test_5_82323965_639854915_-688317394AB.txt |
AC |
443 ms |
57020 KB |
test_676_198114948_0_792459792.txt |
AC |
444 ms |
57032 KB |
test_688_151937211_-286341114_10198771.txt |
AC |
459 ms |
57016 KB |
test_6_187422602_374845204_-374845204AB.txt |
AC |
462 ms |
57032 KB |
test_6_346164451_0_0AB.txt |
AC |
459 ms |
57028 KB |
test_6_99058019_194123640_-837769837AB.txt |
AC |
459 ms |
57032 KB |
test_71_367604060_367604060_0.txt |
AC |
453 ms |
57028 KB |
test_752_120973200_0_-725839200.txt |
AC |
460 ms |
57024 KB |
test_772_881340073_0_0.txt |
AC |
446 ms |
56824 KB |
test_777_125719576_-499451637_822057459.txt |
AC |
449 ms |
57020 KB |
test_7_166330212_166330212_-332660424AB.txt |
AC |
448 ms |
56844 KB |
test_7_89698746_448493730_-179397492AB.txt |
AC |
451 ms |
56920 KB |
test_839_166155061_0_-332310122.txt |
AC |
445 ms |
57028 KB |
test_839_923157_923157_564972084.txt |
AC |
459 ms |
57032 KB |
test_849_415705_290993500_0.txt |
AC |
450 ms |
56828 KB |
test_873_418406_2928842_322172620.txt |
AC |
447 ms |
57024 KB |
test_8_10000000_-40000000_-40000000AB.txt |
AC |
449 ms |
57024 KB |
test_8_10000000_0_80000000AB.txt |
AC |
452 ms |
57024 KB |
test_8_10000000_80000000_0AB.txt |
AC |
451 ms |
56888 KB |
test_981_159373724_-637494896_-159373724.txt |
AC |
462 ms |
56848 KB |
test_9_283198156_849594468_849594468B.txt |
AC |
445 ms |
57024 KB |