D - Loong and Takahashi Editorial by MMNMM


高橋くんを中央に配置し、龍を中央から外に向かって巻くように配置していくとこの問題を解くことができます。

この方法では、ある \(N\) で解けたらグリッドの中央の部分を取ってくることで \(N\) がより小さい場合の解を得ることができます。

よって、この方法で \(45\times45\) のグリッドを作ることができれば、あとは中央 \(N\times N\) マスの部分を取ってくることでこの問題に正解することができます。

実装例は以下のようになります。

ans = [['1980', '1981', '1982', '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992', '1993', '1994', '1995', '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023', '2024'], ['1979', '1806', '1807', '1808', '1809', '1810', '1811', '1812', '1813', '1814', '1815', '1816', '1817', '1818', '1819', '1820', '1821', '1822', '1823', '1824', '1825', '1826', '1827', '1828', '1829', '1830', '1831', '1832', '1833', '1834', '1835', '1836', '1837', '1838', '1839', '1840', '1841', '1842', '1843', '1844', '1845', '1846', '1847', '1848', '1849'], ['1978', '1805', '1640', '1641', '1642', '1643', '1644', '1645', '1646', '1647', '1648', '1649', '1650', '1651', '1652', '1653', '1654', '1655', '1656', '1657', '1658', '1659', '1660', '1661', '1662', '1663', '1664', '1665', '1666', '1667', '1668', '1669', '1670', '1671', '1672', '1673', '1674', '1675', '1676', '1677', '1678', '1679', '1680', '1681', '1850'], ['1977', '1804', '1639', '1482', '1483', '1484', '1485', '1486', '1487', '1488', '1489', '1490', '1491', '1492', '1493', '1494', '1495', '1496', '1497', '1498', '1499', '1500', '1501', '1502', '1503', '1504', '1505', '1506', '1507', '1508', '1509', '1510', '1511', '1512', '1513', '1514', '1515', '1516', '1517', '1518', '1519', '1520', '1521', '1682', '1851'], ['1976', '1803', '1638', '1481', '1332', '1333', '1334', '1335', '1336', '1337', '1338', '1339', '1340', '1341', '1342', '1343', '1344', '1345', '1346', '1347', '1348', '1349', '1350', '1351', '1352', '1353', '1354', '1355', '1356', '1357', '1358', '1359', '1360', '1361', '1362', '1363', '1364', '1365', '1366', '1367', '1368', '1369', '1522', '1683', '1852'], ['1975', '1802', '1637', '1480', '1331', '1190', '1191', '1192', '1193', '1194', '1195', '1196', '1197', '1198', '1199', '1200', '1201', '1202', '1203', '1204', '1205', '1206', '1207', '1208', '1209', '1210', '1211', '1212', '1213', '1214', '1215', '1216', '1217', '1218', '1219', '1220', '1221', '1222', '1223', '1224', '1225', '1370', '1523', '1684', '1853'], ['1974', '1801', '1636', '1479', '1330', '1189', '1056', '1057', '1058', '1059', '1060', '1061', '1062', '1063', '1064', '1065', '1066', '1067', '1068', '1069', '1070', '1071', '1072', '1073', '1074', '1075', '1076', '1077', '1078', '1079', '1080', '1081', '1082', '1083', '1084', '1085', '1086', '1087', '1088', '1089', '1226', '1371', '1524', '1685', '1854'], ['1973', '1800', '1635', '1478', '1329', '1188', '1055', '930', '931', '932', '933', '934', '935', '936', '937', '938', '939', '940', '941', '942', '943', '944', '945', '946', '947', '948', '949', '950', '951', '952', '953', '954', '955', '956', '957', '958', '959', '960', '961', '1090', '1227', '1372', '1525', '1686', '1855'], ['1972', '1799', '1634', '1477', '1328', '1187', '1054', '929', '812', '813', '814', '815', '816', '817', '818', '819', '820', '821', '822', '823', '824', '825', '826', '827', '828', '829', '830', '831', '832', '833', '834', '835', '836', '837', '838', '839', '840', '841', '962', '1091', '1228', '1373', '1526', '1687', '1856'], ['1971', '1798', '1633', '1476', '1327', '1186', '1053', '928', '811', '702', '703', '704', '705', '706', '707', '708', '709', '710', '711', '712', '713', '714', '715', '716', '717', '718', '719', '720', '721', '722', '723', '724', '725', '726', '727', '728', '729', '842', '963', '1092', '1229', '1374', '1527', '1688', '1857'], ['1970', '1797', '1632', '1475', '1326', '1185', '1052', '927', '810', '701', '600', '601', '602', '603', '604', '605', '606', '607', '608', '609', '610', '611', '612', '613', '614', '615', '616', '617', '618', '619', '620', '621', '622', '623', '624', '625', '730', '843', '964', '1093', '1230', '1375', '1528', '1689', '1858'], ['1969', '1796', '1631', '1474', '1325', '1184', '1051', '926', '809', '700', '599', '506', '507', '508', '509', '510', '511', '512', '513', '514', '515', '516', '517', '518', '519', '520', '521', '522', '523', '524', '525', '526', '527', '528', '529', '626', '731', '844', '965', '1094', '1231', '1376', '1529', '1690', '1859'], ['1968', '1795', '1630', '1473', '1324', '1183', '1050', '925', '808', '699', '598', '505', '420', '421', '422', '423', '424', '425', '426', '427', '428', '429', '430', '431', '432', '433', '434', '435', '436', '437', '438', '439', '440', '441', '530', '627', '732', '845', '966', '1095', '1232', '1377', '1530', '1691', '1860'], ['1967', '1794', '1629', '1472', '1323', '1182', '1049', '924', '807', '698', '597', '504', '419', '342', '343', '344', '345', '346', '347', '348', '349', '350', '351', '352', '353', '354', '355', '356', '357', '358', '359', '360', '361', '442', '531', '628', '733', '846', '967', '1096', '1233', '1378', '1531', '1692', '1861'], ['1966', '1793', '1628', '1471', '1322', '1181', '1048', '923', '806', '697', '596', '503', '418', '341', '272', '273', '274', '275', '276', '277', '278', '279', '280', '281', '282', '283', '284', '285', '286', '287', '288', '289', '362', '443', '532', '629', '734', '847', '968', '1097', '1234', '1379', '1532', '1693', '1862'], ['1965', '1792', '1627', '1470', '1321', '1180', '1047', '922', '805', '696', '595', '502', '417', '340', '271', '210', '211', '212', '213', '214', '215', '216', '217', '218', '219', '220', '221', '222', '223', '224', '225', '290', '363', '444', '533', '630', '735', '848', '969', '1098', '1235', '1380', '1533', '1694', '1863'], ['1964', '1791', '1626', '1469', '1320', '1179', '1046', '921', '804', '695', '594', '501', '416', '339', '270', '209', '156', '157', '158', '159', '160', '161', '162', '163', '164', '165', '166', '167', '168', '169', '226', '291', '364', '445', '534', '631', '736', '849', '970', '1099', '1236', '1381', '1534', '1695', '1864'], ['1963', '1790', '1625', '1468', '1319', '1178', '1045', '920', '803', '694', '593', '500', '415', '338', '269', '208', '155', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '170', '227', '292', '365', '446', '535', '632', '737', '850', '971', '1100', '1237', '1382', '1535', '1696', '1865'], ['1962', '1789', '1624', '1467', '1318', '1177', '1044', '919', '802', '693', '592', '499', '414', '337', '268', '207', '154', '109', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '122', '171', '228', '293', '366', '447', '536', '633', '738', '851', '972', '1101', '1238', '1383', '1536', '1697', '1866'], ['1961', '1788', '1623', '1466', '1317', '1176', '1043', '918', '801', '692', '591', '498', '413', '336', '267', '206', '153', '108', '71', '42', '43', '44', '45', '46', '47', '48', '49', '82', '123', '172', '229', '294', '367', '448', '537', '634', '739', '852', '973', '1102', '1239', '1384', '1537', '1698', '1867'], ['1960', '1787', '1622', '1465', '1316', '1175', '1042', '917', '800', '691', '590', '497', '412', '335', '266', '205', '152', '107', '70', '41', '20', '21', '22', '23', '24', '25', '50', '83', '124', '173', '230', '295', '368', '449', '538', '635', '740', '853', '974', '1103', '1240', '1385', '1538', '1699', '1868'], ['1959', '1786', '1621', '1464', '1315', '1174', '1041', '916', '799', '690', '589', '496', '411', '334', '265', '204', '151', '106', '69', '40', '19', '6', '7', '8', '9', '26', '51', '84', '125', '174', '231', '296', '369', '450', '539', '636', '741', '854', '975', '1104', '1241', '1386', '1539', '1700', '1869'], ['1958', '1785', '1620', '1463', '1314', '1173', '1040', '915', '798', '689', '588', '495', '410', '333', '264', '203', '150', '105', '68', '39', '18', '5', 'T', '1', '10', '27', '52', '85', '126', '175', '232', '297', '370', '451', '540', '637', '742', '855', '976', '1105', '1242', '1387', '1540', '1701', '1870'], ['1957', '1784', '1619', '1462', '1313', '1172', '1039', '914', '797', '688', '587', '494', '409', '332', '263', '202', '149', '104', '67', '38', '17', '4', '3', '2', '11', '28', '53', '86', '127', '176', '233', '298', '371', '452', '541', '638', '743', '856', '977', '1106', '1243', '1388', '1541', '1702', '1871'], ['1956', '1783', '1618', '1461', '1312', '1171', '1038', '913', '796', '687', '586', '493', '408', '331', '262', '201', '148', '103', '66', '37', '16', '15', '14', '13', '12', '29', '54', '87', '128', '177', '234', '299', '372', '453', '542', '639', '744', '857', '978', '1107', '1244', '1389', '1542', '1703', '1872'], ['1955', '1782', '1617', '1460', '1311', '1170', '1037', '912', '795', '686', '585', '492', '407', '330', '261', '200', '147', '102', '65', '36', '35', '34', '33', '32', '31', '30', '55', '88', '129', '178', '235', '300', '373', '454', '543', '640', '745', '858', '979', '1108', '1245', '1390', '1543', '1704', '1873'], ['1954', '1781', '1616', '1459', '1310', '1169', '1036', '911', '794', '685', '584', '491', '406', '329', '260', '199', '146', '101', '64', '63', '62', '61', '60', '59', '58', '57', '56', '89', '130', '179', '236', '301', '374', '455', '544', '641', '746', '859', '980', '1109', '1246', '1391', '1544', '1705', '1874'], ['1953', '1780', '1615', '1458', '1309', '1168', '1035', '910', '793', '684', '583', '490', '405', '328', '259', '198', '145', '100', '99', '98', '97', '96', '95', '94', '93', '92', '91', '90', '131', '180', '237', '302', '375', '456', '545', '642', '747', '860', '981', '1110', '1247', '1392', '1545', '1706', '1875'], ['1952', '1779', '1614', '1457', '1308', '1167', '1034', '909', '792', '683', '582', '489', '404', '327', '258', '197', '144', '143', '142', '141', '140', '139', '138', '137', '136', '135', '134', '133', '132', '181', '238', '303', '376', '457', '546', '643', '748', '861', '982', '1111', '1248', '1393', '1546', '1707', '1876'], ['1951', '1778', '1613', '1456', '1307', '1166', '1033', '908', '791', '682', '581', '488', '403', '326', '257', '196', '195', '194', '193', '192', '191', '190', '189', '188', '187', '186', '185', '184', '183', '182', '239', '304', '377', '458', '547', '644', '749', '862', '983', '1112', '1249', '1394', '1547', '1708', '1877'], ['1950', '1777', '1612', '1455', '1306', '1165', '1032', '907', '790', '681', '580', '487', '402', '325', '256', '255', '254', '253', '252', '251', '250', '249', '248', '247', '246', '245', '244', '243', '242', '241', '240', '305', '378', '459', '548', '645', '750', '863', '984', '1113', '1250', '1395', '1548', '1709', '1878'], ['1949', '1776', '1611', '1454', '1305', '1164', '1031', '906', '789', '680', '579', '486', '401', '324', '323', '322', '321', '320', '319', '318', '317', '316', '315', '314', '313', '312', '311', '310', '309', '308', '307', '306', '379', '460', '549', '646', '751', '864', '985', '1114', '1251', '1396', '1549', '1710', '1879'], ['1948', '1775', '1610', '1453', '1304', '1163', '1030', '905', '788', '679', '578', '485', '400', '399', '398', '397', '396', '395', '394', '393', '392', '391', '390', '389', '388', '387', '386', '385', '384', '383', '382', '381', '380', '461', '550', '647', '752', '865', '986', '1115', '1252', '1397', '1550', '1711', '1880'], ['1947', '1774', '1609', '1452', '1303', '1162', '1029', '904', '787', '678', '577', '484', '483', '482', '481', '480', '479', '478', '477', '476', '475', '474', '473', '472', '471', '470', '469', '468', '467', '466', '465', '464', '463', '462', '551', '648', '753', '866', '987', '1116', '1253', '1398', '1551', '1712', '1881'], ['1946', '1773', '1608', '1451', '1302', '1161', '1028', '903', '786', '677', '576', '575', '574', '573', '572', '571', '570', '569', '568', '567', '566', '565', '564', '563', '562', '561', '560', '559', '558', '557', '556', '555', '554', '553', '552', '649', '754', '867', '988', '1117', '1254', '1399', '1552', '1713', '1882'], ['1945', '1772', '1607', '1450', '1301', '1160', '1027', '902', '785', '676', '675', '674', '673', '672', '671', '670', '669', '668', '667', '666', '665', '664', '663', '662', '661', '660', '659', '658', '657', '656', '655', '654', '653', '652', '651', '650', '755', '868', '989', '1118', '1255', '1400', '1553', '1714', '1883'], ['1944', '1771', '1606', '1449', '1300', '1159', '1026', '901', '784', '783', '782', '781', '780', '779', '778', '777', '776', '775', '774', '773', '772', '771', '770', '769', '768', '767', '766', '765', '764', '763', '762', '761', '760', '759', '758', '757', '756', '869', '990', '1119', '1256', '1401', '1554', '1715', '1884'], ['1943', '1770', '1605', '1448', '1299', '1158', '1025', '900', '899', '898', '897', '896', '895', '894', '893', '892', '891', '890', '889', '888', '887', '886', '885', '884', '883', '882', '881', '880', '879', '878', '877', '876', '875', '874', '873', '872', '871', '870', '991', '1120', '1257', '1402', '1555', '1716', '1885'], ['1942', '1769', '1604', '1447', '1298', '1157', '1024', '1023', '1022', '1021', '1020', '1019', '1018', '1017', '1016', '1015', '1014', '1013', '1012', '1011', '1010', '1009', '1008', '1007', '1006', '1005', '1004', '1003', '1002', '1001', '1000', '999', '998', '997', '996', '995', '994', '993', '992', '1121', '1258', '1403', '1556', '1717', '1886'], ['1941', '1768', '1603', '1446', '1297', '1156', '1155', '1154', '1153', '1152', '1151', '1150', '1149', '1148', '1147', '1146', '1145', '1144', '1143', '1142', '1141', '1140', '1139', '1138', '1137', '1136', '1135', '1134', '1133', '1132', '1131', '1130', '1129', '1128', '1127', '1126', '1125', '1124', '1123', '1122', '1259', '1404', '1557', '1718', '1887'], ['1940', '1767', '1602', '1445', '1296', '1295', '1294', '1293', '1292', '1291', '1290', '1289', '1288', '1287', '1286', '1285', '1284', '1283', '1282', '1281', '1280', '1279', '1278', '1277', '1276', '1275', '1274', '1273', '1272', '1271', '1270', '1269', '1268', '1267', '1266', '1265', '1264', '1263', '1262', '1261', '1260', '1405', '1558', '1719', '1888'], ['1939', '1766', '1601', '1444', '1443', '1442', '1441', '1440', '1439', '1438', '1437', '1436', '1435', '1434', '1433', '1432', '1431', '1430', '1429', '1428', '1427', '1426', '1425', '1424', '1423', '1422', '1421', '1420', '1419', '1418', '1417', '1416', '1415', '1414', '1413', '1412', '1411', '1410', '1409', '1408', '1407', '1406', '1559', '1720', '1889'], ['1938', '1765', '1600', '1599', '1598', '1597', '1596', '1595', '1594', '1593', '1592', '1591', '1590', '1589', '1588', '1587', '1586', '1585', '1584', '1583', '1582', '1581', '1580', '1579', '1578', '1577', '1576', '1575', '1574', '1573', '1572', '1571', '1570', '1569', '1568', '1567', '1566', '1565', '1564', '1563', '1562', '1561', '1560', '1721', '1890'], ['1937', '1764', '1763', '1762', '1761', '1760', '1759', '1758', '1757', '1756', '1755', '1754', '1753', '1752', '1751', '1750', '1749', '1748', '1747', '1746', '1745', '1744', '1743', '1742', '1741', '1740', '1739', '1738', '1737', '1736', '1735', '1734', '1733', '1732', '1731', '1730', '1729', '1728', '1727', '1726', '1725', '1724', '1723', '1722', '1891'], ['1936', '1935', '1934', '1933', '1932', '1931', '1930', '1929', '1928', '1927', '1926', '1925', '1924', '1923', '1922', '1921', '1920', '1919', '1918', '1917', '1916', '1915', '1914', '1913', '1912', '1911', '1910', '1909', '1908', '1907', '1906', '1905', '1904', '1903', '1902', '1901', '1900', '1899', '1898', '1897', '1896', '1895', '1894', '1893', '1892']]

N = int(input())

for row in ans[(45-N)//2:(45+N)//2]:
    print(' '.join(row[(45-N)//2:(45+N)//2]))

posted:
last update: