20042022-12-13 21:48:52neszbalVárosnézéspython3Hibás válasz 0/100275ms13088 KiB
def phi(p):
    phi = 0
    for i in range(len(p)):
        for j in range(i+1, len(p)):
            if p[i] > p[j]:
                phi += 1
    return phi

# Read input
n, k = map(int, input().split())
p = list(map(int, input().split()))
l = list(map(int, input().split()))

# Initialize variables
best_p = p.copy()
best_phi = phi(p)

# Try all possible exchanges
for i in range(n):
    for j in range(i+1, n):
        if abs(i - j) in l:  # Check if the distance is allowed
            p[i], p[j] = p[j], p[i]  # Exchange
            phi_p = phi(p)
            if phi_p < best_phi:  # Check if it's better than the current best
                best_p = p.copy()
                best_phi = phi_p
            p[i], p[j] = p[j], p[i]  # Undo the exchange

# Print the result
print(" ".join(map(str, best_p)))
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva18ms11280 KiB
2Hibás válasz17ms11364 KiB
subtask20/10
3Elfogadva17ms11704 KiB
4Hibás válasz17ms11884 KiB
5Hibás válasz17ms12068 KiB
6Hibás válasz17ms12304 KiB
7Hibás válasz17ms12620 KiB
subtask30/30
8Hibás válasz35ms12368 KiB
9Hibás válasz215ms12592 KiB
10Hibás válasz92ms12936 KiB
11Időlimit túllépés268ms12880 KiB
12Hibás válasz43ms13088 KiB
subtask40/60
13Időlimit túllépés263ms6180 KiB
14Időlimit túllépés259ms6176 KiB
15Időlimit túllépés259ms6120 KiB
16Időlimit túllépés254ms6160 KiB
17Időlimit túllépés275ms6256 KiB
18Időlimit túllépés266ms6068 KiB
19Időlimit túllépés270ms6296 KiB
20Időlimit túllépés266ms6624 KiB
21Időlimit túllépés275ms6644 KiB
22Időlimit túllépés263ms6656 KiB