TOPIC

Números negativos

Pedro S. Leston Rey asked 2 years ago

Segundo a descrição deste problema, o valor de M esta entre 0 e 10000, porém descobri que M pode ter um valor negativo. Assim adaptei o meu código para lidar com números negativos e utilizando o uDebug conferi o meu código. O código devolvia o valor correto inclusive com M negativo. Submeti o meu código e recibi WA 10%. Eis o meu código

import functools

def givemaior(m):

    def mabs(x, y):
        if x < 0: return -(abs(x) % y)
        return x % y

    def maior(a, b):
        if mabs(a, m) == mabs(b, m):
            if a == b: return 0
            if a % 2 == 0 and b % 2 == 1: return 1
            if a % 2 == 0 and b % 2 == 0: return 1 if a > b else -1
            return 1 if a < b else -1
        if mabs(a, m) > mabs(b, m): return 1
        return -1
    return maior

while True:
    n, k = [int(k) for k in input().split()]
    if n == k == 0: break
    m = abs(k)
    xs = []
    for i in range(n):
        x = int(input())
        xs.append(x)
    xs = sorted(xs, key = functools.cmp_to_key(givemaior(m)))
    print(str(n) + ' ' + str(k))
    for i in range(n):
        print(xs[i])
print('0 0')
print()

e meu teste

10 -3
-12
-5
6
-7
-90
-97
40
2
4
-1
0 0

This topic has not been answered yet. Be the first!

Remember not post solutions. Your post may be reviewed by our moderators.