1269C - Long Beautiful Integer - CodeForces Solution


greedy implementation *1700

Please click on ads to support us..

Python Code:

import sys
'''
'''


def run(x, k):
    n = len(x) % k
    m = len(x)//k
    x1 = x
    if n != 0:
        m += 1
        x1 = x+x[n:k]
    rt = []
    for i in range(0, len(x1), k):
        rt.append(x1[i:i+k])
    for i in range(1, len(rt)):
        if rt[0] < rt[i]:
            rt[0] = str(int(rt[0])+1)
            break
        if rt[0] > rt[i]:
            break
    return (rt[0]*m)[:len(x)]


if sys.argv[-1] == 't':
    cases = [
        ['353', 2, '353'],
        ['1234', 2, '1313'],
        ['1234', 3, '1241'],
        ['1214', 2, '1313'],
        ['1204', 2, '1212'],
        ['121256', 2, '131313'],
        ['121056', 2, '121212'],
        ['121210', 2, '121212'],
        ['12345', 2, '13131'],
        ['12345', 3, '12412'],
        ['12945', 3, '13013'],
    ]
    for case in cases:
        r = run(*case[:-1])
        if r != case[-1]:
            print(case, r)
else:
    b, k = input().split(" ")
    print(b)
    print(run(input(), int(k)))

		 	          			 			 	  		 			


Comments

Submit
0 Comments
More Questions

1422A - Fence
21D - Traveling Graph
1559B - Mocha and Red and Blue
1579C - Ticks
268B - Buttons
898A - Rounding
1372B - Omkar and Last Class of Math
1025D - Recovering BST
439A - Devu the Singer and Churu the Joker
1323A - Even Subset Sum Problem
1095A - Repeating Cipher
630F - Selection of Personnel
630K - Indivisibility
20B - Equation
600B - Queries about less or equal elements
1015A - Points in Segments
1593B - Make it Divisible by 25
680C - Bear and Prime 100
1300A - Non-zero
1475E - Advertising Agency
1345B - Card Constructions
1077B - Disturbed People
653A - Bear and Three Balls
794A - Bank Robbery
157A - Game Outcome
3B - Lorry
1392A - Omkar and Password
489A - SwapSort
932A - Palindromic Supersequence
433A - Kitahara Haruki's Gift