Submission #152180


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, c = (int(x) for x in sys.stdin.readline().split())
    a = list()
    for _ in range(n):
        ai, = (int(x) for x in sys.stdin.readline().split())
        a.append(ai)
    print solve(c, a)

def solve(c, a):
    ao = a[0::2]
    ae = a[1::2]
    do = defaultdict(int)
    de = defaultdict(int)
    for d in ao:
        do[d] += 1
    for d in ae:
        de[d] += 1

    maxo = max(do.values())
    maxoc = set([x for x, s in do.items() if s == maxo])
    maxe = max(de.values())
    maxec = set([x for x, s in de.items() if s == maxe])

    if len(maxoc.symmetric_difference(maxec)) != 0:
        return c * (len(ao) - maxo + len(ae) - maxe)

    maxon = max([s for s in do.values() if s != maxo] + [0])
    maxen = max([s for s in de.values() if s != maxe] + [0])

    r1 = c * (len(ao) - maxon + len(ae) - maxe)
    r2 = c * (len(ao) - maxo + len(ae) - maxen)
    return min([r1, r2])

    
class Test(unittest.TestCase):

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

    def test50(self):
        self.assertEqual(solve(10, [3, 2, 1]), 10)
        self.assertEqual(solve(100, [1,1,1,1]), 200)
        self.assertEqual(solve(1000, list(range(1,11))), 8000)

    def test60(self):
        self.assertEqual(solve(10, [1, 1, 1]), 10)
        self.assertEqual(solve(10, [1, 2, 1]), 0)
        self.assertEqual(solve(10, [1, 1, 1, 1, 1]), 20)

    def test90(self):
        self.assertEqual(self.tryone("""\
3 10
3
2
1
"""), """10\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 B - 縞模様
User over80
Language Python (2.7.3)
Score 100
Code Size 2106 Byte
Status AC
Exec Time 224 ms
Memory 4448 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 36
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 224 ms 4436 KB
subtask0_sample_02.txt AC 71 ms 4320 KB
subtask0_sample_03.txt AC 71 ms 4440 KB
subtask1_01.txt AC 72 ms 4372 KB
subtask1_02.txt AC 74 ms 4260 KB
subtask1_03.txt AC 73 ms 4432 KB
subtask1_04.txt AC 71 ms 4436 KB
subtask1_05.txt AC 70 ms 4428 KB
subtask1_06.txt AC 69 ms 4440 KB
subtask1_07.txt AC 72 ms 4432 KB
subtask1_08.txt AC 72 ms 4268 KB
subtask1_09.txt AC 71 ms 4244 KB
subtask1_10.txt AC 72 ms 4440 KB
subtask1_11.txt AC 69 ms 4440 KB
subtask1_12.txt AC 72 ms 4436 KB
subtask1_13.txt AC 72 ms 4248 KB
subtask1_14.txt AC 72 ms 4244 KB
subtask1_15.txt AC 72 ms 4432 KB
subtask1_16.txt AC 72 ms 4440 KB
subtask1_17.txt AC 76 ms 4440 KB
subtask1_18.txt AC 72 ms 4436 KB
subtask1_19.txt AC 71 ms 4440 KB
subtask1_20.txt AC 72 ms 4436 KB
subtask1_21.txt AC 72 ms 4244 KB
subtask1_22.txt AC 72 ms 4440 KB
subtask1_23.txt AC 70 ms 4440 KB
subtask1_24.txt AC 70 ms 4440 KB
subtask1_25.txt AC 69 ms 4268 KB
subtask1_26.txt AC 71 ms 4432 KB
subtask1_27.txt AC 73 ms 4448 KB
subtask1_28.txt AC 69 ms 4268 KB
subtask1_29.txt AC 70 ms 4268 KB
subtask1_30.txt AC 73 ms 4436 KB
subtask1_31.txt AC 72 ms 4440 KB
subtask1_32.txt AC 72 ms 4440 KB
subtask1_33.txt AC 72 ms 4384 KB