Submission #155246


Source Code Expand

#!/usr/bin/env python2.7

import sys
from collections import namedtuple, defaultdict

from cStringIO import StringIO
import unittest
import cProfile

def main():
    N, M = (int(x) for x in sys.stdin.readline().split())
    print " ".join(map(str, solve(N, M)))

def solve(N, M):
    if N * 4 < M or N * 2 > M:
        return -1, -1, -1

    r = M - N * 2
    if r < N:
        return N-r, r, 0
    else:
        r = r - N
        return 0, N-r, r
    
class Test(unittest.TestCase):

    @staticmethod
    def tryone(indata):
        sys.stdin = StringIO(indata)
        out = sys.stdout = StringIO()
        main()
        return out.getvalue()

    def test50(self):
        calc = lambda (a, b, c): a * 2 + b * 3 + c * 4
        self.assertEqual(calc(solve(3, 9)), 9)
        self.assertEqual(calc(solve(7, 23)), 23)
        self.assertEqual(solve(10, 41), (-1, -1, -1))

    def test53(self):
        self.assertEqual(solve(5, 9), (-1, -1, -1))
        self.assertEqual(solve(5, 10), (5, 0, 0))
        self.assertEqual(solve(5, 20), (0, 0, 5))
        self.assertEqual(solve(5, 21), (-1, -1, -1))

    def test91(self):
        self.assertEqual(self.tryone("""\
10 41
"""), """-1 -1 -1\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 C - スフィンクスのなぞなぞ
User over80
Language Python (2.7.3)
Score 100
Code Size 1559 Byte
Status AC
Exec Time 127 ms
Memory 4436 KB

Judge Result

Set Name smallA smallB all
Score / Max Score 10 / 10 20 / 20 70 / 70
Status
AC × 38
AC × 65
AC × 118
Set Name Test Cases
smallA test_1-1_ABC.txt, test_1-500_ABC.txt, test_100-103_ABC.txt, test_100-199_ABC.txt, test_100-1_ABC.txt, test_100-200_ABC.txt, test_100-201_ABC.txt, test_100-229_ABC.txt, test_100-300_ABC.txt, test_100-301_ABC.txt, test_100-399_ABC.txt, test_100-400_ABC.txt, test_100-401_ABC.txt, test_100-431_ABC.txt, test_100-473_ABC.txt, test_100-500_ABC.txt, test_33-106_ABC.txt, test_33-131_ABC.txt, test_33-132_ABC.txt, test_33-133_ABC.txt, test_33-134_ABC.txt, test_33-146_ABC.txt, test_33-51_ABC.txt, test_33-65_ABC.txt, test_33-66_ABC.txt, test_33-67_ABC.txt, test_33-71_ABC.txt, test_92-183_ABC.txt, test_92-184_ABC.txt, test_92-185_ABC.txt, test_92-310_ABC.txt, test_92-34_ABC.txt, test_92-367_ABC.txt, test_92-368_ABC.txt, test_92-369_ABC.txt, test_92-391_ABC.txt, test_92-434_ABC.txt, test_92-459_ABC.txt
smallB test_1-1_ABC.txt, test_1-500_ABC.txt, test_1-7500_AB.txt, test_100-103_ABC.txt, test_100-199_ABC.txt, test_100-1_ABC.txt, test_100-200_ABC.txt, test_100-201_ABC.txt, test_100-229_ABC.txt, test_100-300_ABC.txt, test_100-301_ABC.txt, test_100-399_ABC.txt, test_100-400_ABC.txt, test_100-401_ABC.txt, test_100-431_ABC.txt, test_100-473_ABC.txt, test_100-500_ABC.txt, test_100-7500_AB.txt, test_1500-1_AB.txt, test_1500-2999_AB.txt, test_1500-3000_AB.txt, test_1500-3001_AB.txt, test_1500-4072_AB.txt, test_1500-477_AB.txt, test_1500-500_AB.txt, test_1500-5768_AB.txt, test_1500-5999_AB.txt, test_1500-6000_AB.txt, test_1500-6001_AB.txt, test_1500-6268_AB.txt, test_1500-7024_AB.txt, test_1500-7500_AB.txt, test_33-106_ABC.txt, test_33-131_ABC.txt, test_33-132_ABC.txt, test_33-133_ABC.txt, test_33-134_ABC.txt, test_33-146_ABC.txt, test_33-51_ABC.txt, test_33-65_ABC.txt, test_33-66_ABC.txt, test_33-67_ABC.txt, test_33-71_ABC.txt, test_578-114_AB.txt, test_578-1155_AB.txt, test_578-1156_AB.txt, test_578-1157_AB.txt, test_578-1984_AB.txt, test_578-2101_AB.txt, test_578-2230_AB.txt, test_578-2311_AB.txt, test_578-2312_AB.txt, test_578-2313_AB.txt, test_578-2728_AB.txt, test_92-183_ABC.txt, test_92-184_ABC.txt, test_92-185_ABC.txt, test_92-310_ABC.txt, test_92-34_ABC.txt, test_92-367_ABC.txt, test_92-368_ABC.txt, test_92-369_ABC.txt, test_92-391_ABC.txt, test_92-434_ABC.txt, test_92-459_ABC.txt
all test_1-1_ABC.txt, test_1-500000_A.txt, test_1-500_ABC.txt, test_1-7500_AB.txt, test_100-103_ABC.txt, test_100-199_ABC.txt, test_100-1_ABC.txt, test_100-200_ABC.txt, test_100-201_ABC.txt, test_100-229_ABC.txt, test_100-300_ABC.txt, test_100-301_ABC.txt, test_100-399_ABC.txt, test_100-400_ABC.txt, test_100-401_ABC.txt, test_100-431_ABC.txt, test_100-473_ABC.txt, test_100-500000_A.txt, test_100-500_ABC.txt, test_100-7500_AB.txt, test_100000-175737_A.txt, test_100000-199999_A.txt, test_100000-1_A.txt, test_100000-200000_A.txt, test_100000-200001_A.txt, test_100000-300000_A.txt, test_100000-300001_A.txt, test_100000-321428_A.txt, test_100000-383852_A.txt, test_100000-399999_A.txt, test_100000-400000_A.txt, test_100000-400001_A.txt, test_100000-461143_A.txt, test_100000-482033_A.txt, test_100000-500000_A.txt, test_100000-500_A.txt, test_100000-7500_A.txt, test_12376-24751_A.txt, test_12376-24752_A.txt, test_12376-24753_A.txt, test_12376-4187_A.txt, test_12376-46199_A.txt, test_12376-49503_A.txt, test_12376-49504_A.txt, test_12376-49505_A.txt, test_12376-53158_A.txt, test_12376-57785_A.txt, test_12376-60441_A.txt, test_1500-1_AB.txt, test_1500-2999_AB.txt, test_1500-3000_AB.txt, test_1500-3001_AB.txt, test_1500-4072_AB.txt, test_1500-477_AB.txt, test_1500-500000_A.txt, test_1500-500_AB.txt, test_1500-5768_AB.txt, test_1500-5999_AB.txt, test_1500-6000_AB.txt, test_1500-6001_AB.txt, test_1500-6268_AB.txt, test_1500-7024_AB.txt, test_1500-7500_AB.txt, test_1931-2546_A.txt, test_1931-3861_A.txt, test_1931-3862_A.txt, test_1931-3863_A.txt, test_1931-6721_A.txt, test_1931-7547_A.txt, test_1931-7723_A.txt, test_1931-7724_A.txt, test_1931-7725_A.txt, test_1931-8765_A.txt, test_1931-9463_A.txt, test_33-106_ABC.txt, test_33-131_ABC.txt, test_33-132_ABC.txt, test_33-133_ABC.txt, test_33-134_ABC.txt, test_33-146_ABC.txt, test_33-51_ABC.txt, test_33-65_ABC.txt, test_33-66_ABC.txt, test_33-67_ABC.txt, test_33-71_ABC.txt, test_578-114_AB.txt, test_578-1155_AB.txt, test_578-1156_AB.txt, test_578-1157_AB.txt, test_578-1984_AB.txt, test_578-2101_AB.txt, test_578-2230_AB.txt, test_578-2311_AB.txt, test_578-2312_AB.txt, test_578-2313_AB.txt, test_578-2728_AB.txt, test_84391-168781_A.txt, test_84391-168782_A.txt, test_84391-168783_A.txt, test_84391-263979_A.txt, test_84391-294799_A.txt, test_84391-337563_A.txt, test_84391-337564_A.txt, test_84391-337565_A.txt, test_84391-407535_A.txt, test_84391-420642_A.txt, test_84391-98907_A.txt, test_92-183_ABC.txt, test_92-184_ABC.txt, test_92-185_ABC.txt, test_92-310_ABC.txt, test_92-34_ABC.txt, test_92-367_ABC.txt, test_92-368_ABC.txt, test_92-369_ABC.txt, test_92-391_ABC.txt, test_92-434_ABC.txt, test_92-459_ABC.txt
Case Name Status Exec Time Memory
sample_01.txt AC 127 ms 4312 KB
sample_02.txt AC 67 ms 4312 KB
sample_03.txt AC 67 ms 4396 KB
test_1-1_ABC.txt AC 64 ms 4312 KB
test_1-500000_A.txt AC 67 ms 4308 KB
test_1-500_ABC.txt AC 65 ms 4412 KB
test_1-7500_AB.txt AC 66 ms 4300 KB
test_100-103_ABC.txt AC 64 ms 4312 KB
test_100-199_ABC.txt AC 69 ms 4304 KB
test_100-1_ABC.txt AC 65 ms 4380 KB
test_100-200_ABC.txt AC 64 ms 4308 KB
test_100-201_ABC.txt AC 68 ms 4304 KB
test_100-229_ABC.txt AC 68 ms 4300 KB
test_100-300_ABC.txt AC 63 ms 4308 KB
test_100-301_ABC.txt AC 66 ms 4308 KB
test_100-399_ABC.txt AC 66 ms 4292 KB
test_100-400_ABC.txt AC 67 ms 4316 KB
test_100-401_ABC.txt AC 65 ms 4308 KB
test_100-431_ABC.txt AC 64 ms 4312 KB
test_100-473_ABC.txt AC 65 ms 4320 KB
test_100-500000_A.txt AC 63 ms 4312 KB
test_100-500_ABC.txt AC 63 ms 4308 KB
test_100-7500_AB.txt AC 65 ms 4308 KB
test_100000-175737_A.txt AC 64 ms 4312 KB
test_100000-199999_A.txt AC 64 ms 4308 KB
test_100000-1_A.txt AC 66 ms 4292 KB
test_100000-200000_A.txt AC 64 ms 4304 KB
test_100000-200001_A.txt AC 64 ms 4308 KB
test_100000-300000_A.txt AC 65 ms 4312 KB
test_100000-300001_A.txt AC 63 ms 4316 KB
test_100000-321428_A.txt AC 67 ms 4304 KB
test_100000-383852_A.txt AC 65 ms 4312 KB
test_100000-399999_A.txt AC 64 ms 4312 KB
test_100000-400000_A.txt AC 66 ms 4312 KB
test_100000-400001_A.txt AC 64 ms 4320 KB
test_100000-461143_A.txt AC 65 ms 4316 KB
test_100000-482033_A.txt AC 63 ms 4316 KB
test_100000-500000_A.txt AC 68 ms 4308 KB
test_100000-500_A.txt AC 64 ms 4308 KB
test_100000-7500_A.txt AC 64 ms 4316 KB
test_12376-24751_A.txt AC 66 ms 4308 KB
test_12376-24752_A.txt AC 66 ms 4312 KB
test_12376-24753_A.txt AC 64 ms 4304 KB
test_12376-4187_A.txt AC 68 ms 4312 KB
test_12376-46199_A.txt AC 63 ms 4312 KB
test_12376-49503_A.txt AC 68 ms 4312 KB
test_12376-49504_A.txt AC 69 ms 4320 KB
test_12376-49505_A.txt AC 69 ms 4316 KB
test_12376-53158_A.txt AC 64 ms 4316 KB
test_12376-57785_A.txt AC 64 ms 4316 KB
test_12376-60441_A.txt AC 65 ms 4308 KB
test_1500-1_AB.txt AC 63 ms 4312 KB
test_1500-2999_AB.txt AC 66 ms 4320 KB
test_1500-3000_AB.txt AC 64 ms 4316 KB
test_1500-3001_AB.txt AC 68 ms 4308 KB
test_1500-4072_AB.txt AC 64 ms 4316 KB
test_1500-477_AB.txt AC 65 ms 4312 KB
test_1500-500000_A.txt AC 64 ms 4296 KB
test_1500-500_AB.txt AC 64 ms 4316 KB
test_1500-5768_AB.txt AC 66 ms 4312 KB
test_1500-5999_AB.txt AC 67 ms 4304 KB
test_1500-6000_AB.txt AC 68 ms 4296 KB
test_1500-6001_AB.txt AC 70 ms 4316 KB
test_1500-6268_AB.txt AC 64 ms 4320 KB
test_1500-7024_AB.txt AC 65 ms 4312 KB
test_1500-7500_AB.txt AC 64 ms 4312 KB
test_1931-2546_A.txt AC 64 ms 4316 KB
test_1931-3861_A.txt AC 72 ms 4312 KB
test_1931-3862_A.txt AC 64 ms 4316 KB
test_1931-3863_A.txt AC 66 ms 4308 KB
test_1931-6721_A.txt AC 69 ms 4316 KB
test_1931-7547_A.txt AC 64 ms 4316 KB
test_1931-7723_A.txt AC 63 ms 4312 KB
test_1931-7724_A.txt AC 64 ms 4320 KB
test_1931-7725_A.txt AC 65 ms 4316 KB
test_1931-8765_A.txt AC 64 ms 4320 KB
test_1931-9463_A.txt AC 94 ms 4316 KB
test_33-106_ABC.txt AC 65 ms 4316 KB
test_33-131_ABC.txt AC 66 ms 4312 KB
test_33-132_ABC.txt AC 64 ms 4316 KB
test_33-133_ABC.txt AC 62 ms 4296 KB
test_33-134_ABC.txt AC 64 ms 4308 KB
test_33-146_ABC.txt AC 64 ms 4312 KB
test_33-51_ABC.txt AC 65 ms 4296 KB
test_33-65_ABC.txt AC 62 ms 4308 KB
test_33-66_ABC.txt AC 64 ms 4308 KB
test_33-67_ABC.txt AC 62 ms 4308 KB
test_33-71_ABC.txt AC 67 ms 4316 KB
test_578-114_AB.txt AC 68 ms 4312 KB
test_578-1155_AB.txt AC 65 ms 4296 KB
test_578-1156_AB.txt AC 64 ms 4304 KB
test_578-1157_AB.txt AC 66 ms 4308 KB
test_578-1984_AB.txt AC 75 ms 4304 KB
test_578-2101_AB.txt AC 65 ms 4316 KB
test_578-2230_AB.txt AC 65 ms 4312 KB
test_578-2311_AB.txt AC 69 ms 4436 KB
test_578-2312_AB.txt AC 67 ms 4308 KB
test_578-2313_AB.txt AC 64 ms 4308 KB
test_578-2728_AB.txt AC 63 ms 4312 KB
test_84391-168781_A.txt AC 63 ms 4312 KB
test_84391-168782_A.txt AC 66 ms 4316 KB
test_84391-168783_A.txt AC 64 ms 4308 KB
test_84391-263979_A.txt AC 64 ms 4308 KB
test_84391-294799_A.txt AC 64 ms 4312 KB
test_84391-337563_A.txt AC 64 ms 4316 KB
test_84391-337564_A.txt AC 67 ms 4316 KB
test_84391-337565_A.txt AC 63 ms 4312 KB
test_84391-407535_A.txt AC 64 ms 4316 KB
test_84391-420642_A.txt AC 66 ms 4316 KB
test_84391-98907_A.txt AC 65 ms 4312 KB
test_92-183_ABC.txt AC 67 ms 4308 KB
test_92-184_ABC.txt AC 63 ms 4308 KB
test_92-185_ABC.txt AC 64 ms 4312 KB
test_92-310_ABC.txt AC 64 ms 4308 KB
test_92-34_ABC.txt AC 65 ms 4316 KB
test_92-367_ABC.txt AC 61 ms 4308 KB
test_92-368_ABC.txt AC 66 ms 4320 KB
test_92-369_ABC.txt AC 64 ms 4312 KB
test_92-391_ABC.txt AC 65 ms 4308 KB
test_92-434_ABC.txt AC 63 ms 4316 KB
test_92-459_ABC.txt AC 66 ms 4360 KB