提出 #42958370
ソースコード 拡げる
from copy import deepcopy
import random
def random_bool():
return random.choice([True, False])
def biased_random_bool(a):
if a == True:
return random.choices([True, False], weights=[0.9, 0.1])[0]
return random.choices([True, False], weights=[0.1, 0.9])[0]
def swap_balls(N, balls, use_reverse_default=False, reverse1=True, reverse2=True):
swaps = []
swap_iteration_count = 1
while swap_iteration_count > 0:
swap_iteration_count = 0
if use_reverse_default == False:
reverse1 = biased_random_bool(reverse1)
reverse2 = biased_random_bool(reverse2)
for x in range(N-1):
if reverse1:
x = N-2-x
for y in range(x+1):
if reverse2:
y = x-y
nx = x
ny = y
if balls[x+1][y] > balls[x+1][y+1]:
if balls[x][y] > balls[x+1][y+1]:
nx = x+1
ny = y+1
else:
if balls[x][y] > balls[x+1][y]:
nx = x+1
ny = y
if x != nx:
swaps.append(((x, y), (nx, ny)))
balls[x][y], balls[nx][ny] = balls[nx][ny], balls[x][y]
swap_iteration_count += 1
# 入れ替え操作の回数とリストを返す
return len(swaps), swaps
# テスト用データ
N = 30
balls = [list(map(int, input().split())) for _ in range(N)]
pairs = [swap_balls(N, deepcopy(balls), False, random_bool(), random_bool()) for _ in range(250)]
pairs.append(swap_balls(N, deepcopy(balls), True, False, True))
pairs.append(swap_balls(N, deepcopy(balls), True, False, False))
pairs.append(swap_balls(N, deepcopy(balls), True, True, True))
pairs.append(swap_balls(N, deepcopy(balls), True, True, False))
min_pair = min(pairs, key=lambda pair: pair[0])
print(min_pair[0])
for swap in min_pair[1]:
print(*swap[0], *swap[1])
提出情報
| 提出日時 | |
|---|---|
| 問題 | A - Pyramid Sorting |
| ユーザ | tubotu |
| 言語 | Python (3.8.2) |
| 得点 | 13043935 |
| コード長 | 2082 Byte |
| 結果 | AC |
| 実行時間 | 1620 ms |
| メモリ | 170820 KiB |
ジャッジ結果
| セット名 | test_ALL | ||
|---|---|---|---|
| 得点 / 配点 | 13043935 / 15000000 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| test_ALL | test_0000.txt, test_0001.txt, test_0002.txt, test_0003.txt, test_0004.txt, test_0005.txt, test_0006.txt, test_0007.txt, test_0008.txt, test_0009.txt, test_0010.txt, test_0011.txt, test_0012.txt, test_0013.txt, test_0014.txt, test_0015.txt, test_0016.txt, test_0017.txt, test_0018.txt, test_0019.txt, test_0020.txt, test_0021.txt, test_0022.txt, test_0023.txt, test_0024.txt, test_0025.txt, test_0026.txt, test_0027.txt, test_0028.txt, test_0029.txt, test_0030.txt, test_0031.txt, test_0032.txt, test_0033.txt, test_0034.txt, test_0035.txt, test_0036.txt, test_0037.txt, test_0038.txt, test_0039.txt, test_0040.txt, test_0041.txt, test_0042.txt, test_0043.txt, test_0044.txt, test_0045.txt, test_0046.txt, test_0047.txt, test_0048.txt, test_0049.txt, test_0050.txt, test_0051.txt, test_0052.txt, test_0053.txt, test_0054.txt, test_0055.txt, test_0056.txt, test_0057.txt, test_0058.txt, test_0059.txt, test_0060.txt, test_0061.txt, test_0062.txt, test_0063.txt, test_0064.txt, test_0065.txt, test_0066.txt, test_0067.txt, test_0068.txt, test_0069.txt, test_0070.txt, test_0071.txt, test_0072.txt, test_0073.txt, test_0074.txt, test_0075.txt, test_0076.txt, test_0077.txt, test_0078.txt, test_0079.txt, test_0080.txt, test_0081.txt, test_0082.txt, test_0083.txt, test_0084.txt, test_0085.txt, test_0086.txt, test_0087.txt, test_0088.txt, test_0089.txt, test_0090.txt, test_0091.txt, test_0092.txt, test_0093.txt, test_0094.txt, test_0095.txt, test_0096.txt, test_0097.txt, test_0098.txt, test_0099.txt, test_0100.txt, test_0101.txt, test_0102.txt, test_0103.txt, test_0104.txt, test_0105.txt, test_0106.txt, test_0107.txt, test_0108.txt, test_0109.txt, test_0110.txt, test_0111.txt, test_0112.txt, test_0113.txt, test_0114.txt, test_0115.txt, test_0116.txt, test_0117.txt, test_0118.txt, test_0119.txt, test_0120.txt, test_0121.txt, test_0122.txt, test_0123.txt, test_0124.txt, test_0125.txt, test_0126.txt, test_0127.txt, test_0128.txt, test_0129.txt, test_0130.txt, test_0131.txt, test_0132.txt, test_0133.txt, test_0134.txt, test_0135.txt, test_0136.txt, test_0137.txt, test_0138.txt, test_0139.txt, test_0140.txt, test_0141.txt, test_0142.txt, test_0143.txt, test_0144.txt, test_0145.txt, test_0146.txt, test_0147.txt, test_0148.txt, test_0149.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| test_0000.txt | AC | 1584 ms | 167136 KiB |
| test_0001.txt | AC | 1475 ms | 151424 KiB |
| test_0002.txt | AC | 1525 ms | 160996 KiB |
| test_0003.txt | AC | 1446 ms | 152824 KiB |
| test_0004.txt | AC | 1405 ms | 150948 KiB |
| test_0005.txt | AC | 1553 ms | 163220 KiB |
| test_0006.txt | AC | 1537 ms | 162696 KiB |
| test_0007.txt | AC | 1578 ms | 163992 KiB |
| test_0008.txt | AC | 1460 ms | 151928 KiB |
| test_0009.txt | AC | 1447 ms | 153020 KiB |
| test_0010.txt | AC | 1457 ms | 153368 KiB |
| test_0011.txt | AC | 1502 ms | 157872 KiB |
| test_0012.txt | AC | 1514 ms | 159044 KiB |
| test_0013.txt | AC | 1460 ms | 155836 KiB |
| test_0014.txt | AC | 1620 ms | 170660 KiB |
| test_0015.txt | AC | 1453 ms | 155464 KiB |
| test_0016.txt | AC | 1537 ms | 162068 KiB |
| test_0017.txt | AC | 1516 ms | 160296 KiB |
| test_0018.txt | AC | 1496 ms | 157856 KiB |
| test_0019.txt | AC | 1527 ms | 162892 KiB |
| test_0020.txt | AC | 1511 ms | 159920 KiB |
| test_0021.txt | AC | 1448 ms | 153208 KiB |
| test_0022.txt | AC | 1463 ms | 157356 KiB |
| test_0023.txt | AC | 1586 ms | 165828 KiB |
| test_0024.txt | AC | 1468 ms | 155256 KiB |
| test_0025.txt | AC | 1516 ms | 160296 KiB |
| test_0026.txt | AC | 1504 ms | 159424 KiB |
| test_0027.txt | AC | 1492 ms | 157924 KiB |
| test_0028.txt | AC | 1557 ms | 163492 KiB |
| test_0029.txt | AC | 1445 ms | 151768 KiB |
| test_0030.txt | AC | 1519 ms | 162224 KiB |
| test_0031.txt | AC | 1518 ms | 163320 KiB |
| test_0032.txt | AC | 1531 ms | 163284 KiB |
| test_0033.txt | AC | 1500 ms | 159832 KiB |
| test_0034.txt | AC | 1459 ms | 157052 KiB |
| test_0035.txt | AC | 1499 ms | 159752 KiB |
| test_0036.txt | AC | 1502 ms | 159644 KiB |
| test_0037.txt | AC | 1483 ms | 155728 KiB |
| test_0038.txt | AC | 1529 ms | 163404 KiB |
| test_0039.txt | AC | 1473 ms | 154780 KiB |
| test_0040.txt | AC | 1445 ms | 151632 KiB |
| test_0041.txt | AC | 1528 ms | 163348 KiB |
| test_0042.txt | AC | 1579 ms | 167404 KiB |
| test_0043.txt | AC | 1433 ms | 152164 KiB |
| test_0044.txt | AC | 1467 ms | 154816 KiB |
| test_0045.txt | AC | 1539 ms | 162388 KiB |
| test_0046.txt | AC | 1469 ms | 154480 KiB |
| test_0047.txt | AC | 1523 ms | 163344 KiB |
| test_0048.txt | AC | 1514 ms | 158292 KiB |
| test_0049.txt | AC | 1425 ms | 151488 KiB |
| test_0050.txt | AC | 1547 ms | 163132 KiB |
| test_0051.txt | AC | 1458 ms | 155428 KiB |
| test_0052.txt | AC | 1444 ms | 153488 KiB |
| test_0053.txt | AC | 1474 ms | 152868 KiB |
| test_0054.txt | AC | 1522 ms | 162280 KiB |
| test_0055.txt | AC | 1499 ms | 162676 KiB |
| test_0056.txt | AC | 1459 ms | 155812 KiB |
| test_0057.txt | AC | 1575 ms | 163548 KiB |
| test_0058.txt | AC | 1566 ms | 167760 KiB |
| test_0059.txt | AC | 1445 ms | 154420 KiB |
| test_0060.txt | AC | 1560 ms | 165612 KiB |
| test_0061.txt | AC | 1572 ms | 164112 KiB |
| test_0062.txt | AC | 1536 ms | 161924 KiB |
| test_0063.txt | AC | 1504 ms | 158684 KiB |
| test_0064.txt | AC | 1500 ms | 158792 KiB |
| test_0065.txt | AC | 1529 ms | 160100 KiB |
| test_0066.txt | AC | 1494 ms | 161136 KiB |
| test_0067.txt | AC | 1474 ms | 157720 KiB |
| test_0068.txt | AC | 1523 ms | 161212 KiB |
| test_0069.txt | AC | 1572 ms | 165392 KiB |
| test_0070.txt | AC | 1397 ms | 150828 KiB |
| test_0071.txt | AC | 1432 ms | 151128 KiB |
| test_0072.txt | AC | 1499 ms | 154952 KiB |
| test_0073.txt | AC | 1529 ms | 160640 KiB |
| test_0074.txt | AC | 1481 ms | 157440 KiB |
| test_0075.txt | AC | 1444 ms | 153836 KiB |
| test_0076.txt | AC | 1515 ms | 157376 KiB |
| test_0077.txt | AC | 1501 ms | 159636 KiB |
| test_0078.txt | AC | 1499 ms | 157260 KiB |
| test_0079.txt | AC | 1373 ms | 150324 KiB |
| test_0080.txt | AC | 1586 ms | 164692 KiB |
| test_0081.txt | AC | 1507 ms | 158708 KiB |
| test_0082.txt | AC | 1398 ms | 148580 KiB |
| test_0083.txt | AC | 1506 ms | 160680 KiB |
| test_0084.txt | AC | 1518 ms | 161640 KiB |
| test_0085.txt | AC | 1422 ms | 152536 KiB |
| test_0086.txt | AC | 1483 ms | 158320 KiB |
| test_0087.txt | AC | 1501 ms | 159652 KiB |
| test_0088.txt | AC | 1483 ms | 158080 KiB |
| test_0089.txt | AC | 1451 ms | 157248 KiB |
| test_0090.txt | AC | 1522 ms | 160016 KiB |
| test_0091.txt | AC | 1472 ms | 155348 KiB |
| test_0092.txt | AC | 1519 ms | 159820 KiB |
| test_0093.txt | AC | 1517 ms | 162272 KiB |
| test_0094.txt | AC | 1556 ms | 163464 KiB |
| test_0095.txt | AC | 1460 ms | 155384 KiB |
| test_0096.txt | AC | 1510 ms | 161536 KiB |
| test_0097.txt | AC | 1524 ms | 163184 KiB |
| test_0098.txt | AC | 1536 ms | 161380 KiB |
| test_0099.txt | AC | 1537 ms | 161768 KiB |
| test_0100.txt | AC | 1428 ms | 151164 KiB |
| test_0101.txt | AC | 1520 ms | 161648 KiB |
| test_0102.txt | AC | 1520 ms | 163324 KiB |
| test_0103.txt | AC | 1536 ms | 163460 KiB |
| test_0104.txt | AC | 1520 ms | 161056 KiB |
| test_0105.txt | AC | 1572 ms | 167888 KiB |
| test_0106.txt | AC | 1551 ms | 163564 KiB |
| test_0107.txt | AC | 1494 ms | 161468 KiB |
| test_0108.txt | AC | 1459 ms | 156600 KiB |
| test_0109.txt | AC | 1578 ms | 164928 KiB |
| test_0110.txt | AC | 1466 ms | 155940 KiB |
| test_0111.txt | AC | 1538 ms | 164204 KiB |
| test_0112.txt | AC | 1487 ms | 158332 KiB |
| test_0113.txt | AC | 1539 ms | 158140 KiB |
| test_0114.txt | AC | 1553 ms | 167800 KiB |
| test_0115.txt | AC | 1478 ms | 154548 KiB |
| test_0116.txt | AC | 1450 ms | 155036 KiB |
| test_0117.txt | AC | 1461 ms | 155744 KiB |
| test_0118.txt | AC | 1500 ms | 161716 KiB |
| test_0119.txt | AC | 1466 ms | 156188 KiB |
| test_0120.txt | AC | 1550 ms | 164568 KiB |
| test_0121.txt | AC | 1522 ms | 160420 KiB |
| test_0122.txt | AC | 1461 ms | 156188 KiB |
| test_0123.txt | AC | 1496 ms | 160308 KiB |
| test_0124.txt | AC | 1560 ms | 164832 KiB |
| test_0125.txt | AC | 1505 ms | 163412 KiB |
| test_0126.txt | AC | 1464 ms | 153912 KiB |
| test_0127.txt | AC | 1516 ms | 161100 KiB |
| test_0128.txt | AC | 1465 ms | 157008 KiB |
| test_0129.txt | AC | 1540 ms | 163484 KiB |
| test_0130.txt | AC | 1449 ms | 156060 KiB |
| test_0131.txt | AC | 1485 ms | 157476 KiB |
| test_0132.txt | AC | 1614 ms | 170820 KiB |
| test_0133.txt | AC | 1438 ms | 152336 KiB |
| test_0134.txt | AC | 1557 ms | 163512 KiB |
| test_0135.txt | AC | 1481 ms | 159636 KiB |
| test_0136.txt | AC | 1507 ms | 158684 KiB |
| test_0137.txt | AC | 1552 ms | 165712 KiB |
| test_0138.txt | AC | 1485 ms | 158676 KiB |
| test_0139.txt | AC | 1501 ms | 158648 KiB |
| test_0140.txt | AC | 1442 ms | 151628 KiB |
| test_0141.txt | AC | 1513 ms | 161600 KiB |
| test_0142.txt | AC | 1500 ms | 159756 KiB |
| test_0143.txt | AC | 1519 ms | 160988 KiB |
| test_0144.txt | AC | 1522 ms | 161228 KiB |
| test_0145.txt | AC | 1450 ms | 156652 KiB |
| test_0146.txt | AC | 1517 ms | 163212 KiB |
| test_0147.txt | AC | 1420 ms | 152996 KiB |
| test_0148.txt | AC | 1491 ms | 160572 KiB |
| test_0149.txt | AC | 1484 ms | 156976 KiB |