Submission #156252


Source Code Expand

#!/usr/bin/env python2.7

import sys
from collections import namedtuple, defaultdict
from bisect import bisect

from cStringIO import StringIO
import unittest
import cProfile

def main():
    N, = (int(x) for x in sys.stdin.readline().split())
    cn = list()
    for _ in xrange(N):
        c, = (int(x) for x in sys.stdin.readline().split())
        cn.append(c)
    print solve(cn)

def solve(cn):
    N = len(cn)
    
    best = [0]
    for i in xrange(N):
        c = cn[i]
        j = bisect(best, c)
        if j == len(best):
            best.append(c)
        else:
            best[j] = c

    return N - len(best) + 1
        
    
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([1,3,5,2,4,6]), 2)
        self.assertEqual(solve([5,4,3,2,1]), 4)
        self.assertEqual(solve([1,2,3,4,5,6,7]), 0)

    def test80(self):
        self.assertEqual(solve(list(range(1, 1001))), 0)
        self.assertEqual(solve(list(range(1000, 0, -1))), 999)

    def test81(self):
        self.assertEqual(solve(list(range(1, 30000))), 0)
        self.assertEqual(solve(list(range(30000, 0, -1))), 29999)

    def test91(self):
        self.assertEqual(self.tryone("""\
6
1
3
5
2
4
6
"""), """2\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 100
Code Size 1773 Byte
Status AC
Exec Time 175 ms
Memory 5688 KB

Judge Result

Set Name smallA smallB all
Score / Max Score 10 / 10 40 / 40 50 / 50
Status
AC × 19
AC × 37
AC × 55
Set Name Test Cases
smallA test_01_ABC.txt, test_04_ABC.txt, test_07_ABC.txt, test_10_ABC.txt, test_13_ABC.txt, test_16_ABC.txt, test_19_ABC.txt, test_22_ABC.txt, test_25_ABC.txt, test_28_ABC.txt, test_31_ABC.txt, test_32_ABC.txt, test_35_ABC.txt, test_38_ABC.txt, test_41_ABC.txt, test_44_ABC.txt, test_47_ABC.txt, test_50_ABC.txt, test_53_ABC.txt
smallB test_01_ABC.txt, test_02_AB.txt, test_04_ABC.txt, test_05_AB.txt, test_07_ABC.txt, test_08_AB.txt, test_10_ABC.txt, test_11_AB.txt, test_13_ABC.txt, test_14_AB.txt, test_16_ABC.txt, test_17_AB.txt, test_19_ABC.txt, test_20_AB.txt, test_22_ABC.txt, test_23_AB.txt, test_25_ABC.txt, test_26_AB.txt, test_28_ABC.txt, test_29_AB.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_35_ABC.txt, test_36_AB.txt, test_38_ABC.txt, test_39_AB.txt, test_41_ABC.txt, test_42_AB.txt, test_44_ABC.txt, test_45_AB.txt, test_47_ABC.txt, test_48_AB.txt, test_50_ABC.txt, test_51_AB.txt, test_53_ABC.txt, test_54_AB.txt
all test_01_ABC.txt, test_02_AB.txt, test_03_A.txt, test_04_ABC.txt, test_05_AB.txt, test_06_A.txt, test_07_ABC.txt, test_08_AB.txt, test_09_A.txt, test_10_ABC.txt, test_11_AB.txt, test_12_A.txt, test_13_ABC.txt, test_14_AB.txt, test_15_A.txt, test_16_ABC.txt, test_17_AB.txt, test_18_A.txt, test_19_ABC.txt, test_20_AB.txt, test_21_A.txt, test_22_ABC.txt, test_23_AB.txt, test_24_A.txt, test_25_ABC.txt, test_26_AB.txt, test_27_A.txt, test_28_ABC.txt, test_29_AB.txt, test_30_A.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_34_A.txt, test_35_ABC.txt, test_36_AB.txt, test_37_A.txt, test_38_ABC.txt, test_39_AB.txt, test_40_A.txt, test_41_ABC.txt, test_42_AB.txt, test_43_A.txt, test_44_ABC.txt, test_45_AB.txt, test_46_A.txt, test_47_ABC.txt, test_48_AB.txt, test_49_A.txt, test_50_ABC.txt, test_51_AB.txt, test_52_A.txt, test_53_ABC.txt, test_54_AB.txt, test_55_A.txt
Case Name Status Exec Time Memory
sample_01.txt AC 159 ms 4412 KB
sample_02.txt AC 76 ms 4244 KB
sample_03.txt AC 66 ms 4244 KB
test_01_ABC.txt AC 70 ms 4404 KB
test_02_AB.txt AC 74 ms 4416 KB
test_03_A.txt AC 158 ms 5260 KB
test_04_ABC.txt AC 71 ms 4416 KB
test_05_AB.txt AC 76 ms 4408 KB
test_06_A.txt AC 81 ms 4360 KB
test_07_ABC.txt AC 71 ms 4416 KB
test_08_AB.txt AC 73 ms 4400 KB
test_09_A.txt AC 153 ms 5436 KB
test_10_ABC.txt AC 71 ms 4412 KB
test_11_AB.txt AC 69 ms 4412 KB
test_12_A.txt AC 117 ms 4928 KB
test_13_ABC.txt AC 68 ms 4412 KB
test_14_AB.txt AC 72 ms 4364 KB
test_15_A.txt AC 150 ms 5444 KB
test_16_ABC.txt AC 71 ms 4352 KB
test_17_AB.txt AC 73 ms 4404 KB
test_18_A.txt AC 74 ms 4420 KB
test_19_ABC.txt AC 67 ms 4408 KB
test_20_AB.txt AC 72 ms 4412 KB
test_21_A.txt AC 152 ms 5436 KB
test_22_ABC.txt AC 68 ms 4344 KB
test_23_AB.txt AC 74 ms 4364 KB
test_24_A.txt AC 138 ms 5184 KB
test_25_ABC.txt AC 75 ms 4416 KB
test_26_AB.txt AC 72 ms 4412 KB
test_27_A.txt AC 148 ms 5432 KB
test_28_ABC.txt AC 71 ms 4244 KB
test_29_AB.txt AC 75 ms 4412 KB
test_30_A.txt AC 138 ms 5192 KB
test_31_ABC.txt AC 73 ms 4248 KB
test_32_ABC.txt AC 76 ms 4416 KB
test_33_AB.txt AC 75 ms 4420 KB
test_34_A.txt AC 155 ms 5688 KB
test_35_ABC.txt AC 68 ms 4416 KB
test_36_AB.txt AC 70 ms 4408 KB
test_37_A.txt AC 94 ms 4668 KB
test_38_ABC.txt AC 69 ms 4244 KB
test_39_AB.txt AC 82 ms 4416 KB
test_40_A.txt AC 148 ms 5436 KB
test_41_ABC.txt AC 66 ms 4336 KB
test_42_AB.txt AC 82 ms 4244 KB
test_43_A.txt AC 76 ms 4548 KB
test_44_ABC.txt AC 73 ms 4420 KB
test_45_AB.txt AC 75 ms 4416 KB
test_46_A.txt AC 160 ms 5440 KB
test_47_ABC.txt AC 70 ms 4424 KB
test_48_AB.txt AC 68 ms 4368 KB
test_49_A.txt AC 92 ms 4548 KB
test_50_ABC.txt AC 74 ms 4416 KB
test_51_AB.txt AC 75 ms 4404 KB
test_52_A.txt AC 152 ms 5440 KB
test_53_ABC.txt AC 80 ms 4244 KB
test_54_AB.txt AC 71 ms 4420 KB
test_55_A.txt AC 175 ms 5436 KB