Submission #61870352


Source Code Expand

##### import #####
from time import time
from random import randint
from collections import deque

##### input #####
N,M,H = map(int,input().split())
A = list(map(int,input().split()))
sortedA = [[A[i],i]for i in range(N)]
U = [list()for _ in range(M)]   #U[i]に頂点iと隣接している頂点番号の配列
for _ in range(M):
  v1,v2 = map(int,input().split())
  U[v1].append(v2)
  U[v2].append(v1)

##### function #####
def tree(r,size):
  global selected
  global selected_v
  global ANS
  selected_v += 1
  selected[r] = True
  a_look = 0  #この木の見栄え
  dq = deque([[r,0,-1]])  #幅優先探索のdeque 各要素は[見るべき場所,根からの距離,元の頂点]
  while len(dq)>0:
    s = dq.popleft()
    a_look += A[s[0]]*(s[1]+1)
    ANS[s[0]] = s[2]
    if s[1] < size:  #dq追加処理
      for v in U[s[0]]:
        if not selected[v] and randint(1,(s[1]+1)*A[v])>30:
          selected[v] = True
          selected_v += 1
          dq.append([v,s[1]+1,s[0]])
  return a_look

def decide_root():
  ret = [0]*N
  C = sortedA[:]
  dq = deque([])
  for _ in range(1000):
    _selected = selected[:]
    edge = C.pop()[1]
    Rscore = [1]*N
    dq.append([edge,1,-1]) #幅優先探索のdeque 各要素は[見るべき場所,根からの距離,元の頂点]
    while len(dq)>0:
      r = dq.popleft()
      for v in U[r[0]]:
        if not _selected[v] and A[v]<A[r[0]]:
          _selected[v] = True
          Rscore[v] = Rscore[r[2]]*((r[1]+3)/r[1]+2)
          ret[v] += Rscore[v]
          dq.append([v,r[1]+1,r[0]])
  #print(Rscore)
  return ret

##### 本体 #####
stime = time()  #処理開始時の時刻
ANS = [-1]*N
max_score = -1
TRUE_ANS = 0
while time()<stime+1.7:
  selected = [False]*N  #選択済みの頂点かどうか
  selected_v = 0  #選択済み頂点の個数
  root = randint(0,N-1)
  score = 0
  while selected_v < N:
    Rscore = decide_root()
    Rscore = [[Rscore[i],i]for i in range(N)]
    Rscore.sort()
    #print(Rscore)
    while True:
      root = Rscore.pop()[1]
      if not selected[root]:
        break
    score += tree(root,H)
  if score > max_score:
    max_score = score
    TRUE_ANS = ANS
print(*TRUE_ANS)

Submission Info

Submission Time
Task A - Christmas Tree Cutting
User C4r0ck
Language Python (PyPy 3.10-v7.3.12)
Score 58604924
Code Size 2262 Byte
Status AC
Exec Time 1912 ms
Memory 203232 KiB

Judge Result

Set Name test_ALL
Score / Max Score 58604924 / 300000000000
Status
AC × 150
Set Name Test Cases
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
Case Name Status Exec Time Memory
test_0000.txt AC 1805 ms 193588 KiB
test_0001.txt AC 1824 ms 193680 KiB
test_0002.txt AC 1866 ms 191856 KiB
test_0003.txt AC 1823 ms 194160 KiB
test_0004.txt AC 1860 ms 197936 KiB
test_0005.txt AC 1875 ms 198772 KiB
test_0006.txt AC 1837 ms 194128 KiB
test_0007.txt AC 1833 ms 194280 KiB
test_0008.txt AC 1826 ms 191316 KiB
test_0009.txt AC 1912 ms 196692 KiB
test_0010.txt AC 1860 ms 198432 KiB
test_0011.txt AC 1874 ms 190932 KiB
test_0012.txt AC 1835 ms 190848 KiB
test_0013.txt AC 1863 ms 192100 KiB
test_0014.txt AC 1903 ms 192212 KiB
test_0015.txt AC 1880 ms 193016 KiB
test_0016.txt AC 1894 ms 196192 KiB
test_0017.txt AC 1869 ms 194428 KiB
test_0018.txt AC 1857 ms 186532 KiB
test_0019.txt AC 1846 ms 186472 KiB
test_0020.txt AC 1860 ms 197296 KiB
test_0021.txt AC 1901 ms 198876 KiB
test_0022.txt AC 1882 ms 199624 KiB
test_0023.txt AC 1808 ms 190844 KiB
test_0024.txt AC 1840 ms 197864 KiB
test_0025.txt AC 1870 ms 199544 KiB
test_0026.txt AC 1806 ms 191744 KiB
test_0027.txt AC 1896 ms 194880 KiB
test_0028.txt AC 1892 ms 194364 KiB
test_0029.txt AC 1892 ms 192356 KiB
test_0030.txt AC 1809 ms 192020 KiB
test_0031.txt AC 1884 ms 194576 KiB
test_0032.txt AC 1806 ms 191056 KiB
test_0033.txt AC 1873 ms 196552 KiB
test_0034.txt AC 1848 ms 192440 KiB
test_0035.txt AC 1807 ms 188504 KiB
test_0036.txt AC 1816 ms 194168 KiB
test_0037.txt AC 1823 ms 195984 KiB
test_0038.txt AC 1803 ms 187376 KiB
test_0039.txt AC 1832 ms 192120 KiB
test_0040.txt AC 1806 ms 195000 KiB
test_0041.txt AC 1873 ms 198296 KiB
test_0042.txt AC 1820 ms 192144 KiB
test_0043.txt AC 1841 ms 193792 KiB
test_0044.txt AC 1849 ms 192140 KiB
test_0045.txt AC 1864 ms 191360 KiB
test_0046.txt AC 1816 ms 190648 KiB
test_0047.txt AC 1812 ms 193988 KiB
test_0048.txt AC 1839 ms 190204 KiB
test_0049.txt AC 1839 ms 193404 KiB
test_0050.txt AC 1891 ms 194204 KiB
test_0051.txt AC 1845 ms 188460 KiB
test_0052.txt AC 1863 ms 193992 KiB
test_0053.txt AC 1809 ms 189692 KiB
test_0054.txt AC 1802 ms 190716 KiB
test_0055.txt AC 1832 ms 197100 KiB
test_0056.txt AC 1874 ms 190656 KiB
test_0057.txt AC 1872 ms 196084 KiB
test_0058.txt AC 1907 ms 191828 KiB
test_0059.txt AC 1822 ms 191664 KiB
test_0060.txt AC 1844 ms 195100 KiB
test_0061.txt AC 1860 ms 195912 KiB
test_0062.txt AC 1847 ms 193500 KiB
test_0063.txt AC 1856 ms 191396 KiB
test_0064.txt AC 1885 ms 194400 KiB
test_0065.txt AC 1894 ms 193992 KiB
test_0066.txt AC 1821 ms 194740 KiB
test_0067.txt AC 1859 ms 189032 KiB
test_0068.txt AC 1879 ms 190420 KiB
test_0069.txt AC 1820 ms 192232 KiB
test_0070.txt AC 1802 ms 193844 KiB
test_0071.txt AC 1836 ms 194892 KiB
test_0072.txt AC 1840 ms 187784 KiB
test_0073.txt AC 1891 ms 191760 KiB
test_0074.txt AC 1881 ms 203232 KiB
test_0075.txt AC 1818 ms 193056 KiB
test_0076.txt AC 1821 ms 191160 KiB
test_0077.txt AC 1811 ms 192548 KiB
test_0078.txt AC 1897 ms 191912 KiB
test_0079.txt AC 1888 ms 200780 KiB
test_0080.txt AC 1824 ms 195328 KiB
test_0081.txt AC 1815 ms 190132 KiB
test_0082.txt AC 1878 ms 196412 KiB
test_0083.txt AC 1839 ms 196344 KiB
test_0084.txt AC 1905 ms 200320 KiB
test_0085.txt AC 1840 ms 198024 KiB
test_0086.txt AC 1861 ms 199068 KiB
test_0087.txt AC 1813 ms 192700 KiB
test_0088.txt AC 1844 ms 198724 KiB
test_0089.txt AC 1883 ms 197480 KiB
test_0090.txt AC 1850 ms 195152 KiB
test_0091.txt AC 1817 ms 187744 KiB
test_0092.txt AC 1841 ms 195704 KiB
test_0093.txt AC 1863 ms 193668 KiB
test_0094.txt AC 1816 ms 191272 KiB
test_0095.txt AC 1859 ms 190128 KiB
test_0096.txt AC 1852 ms 193660 KiB
test_0097.txt AC 1871 ms 196816 KiB
test_0098.txt AC 1825 ms 194108 KiB
test_0099.txt AC 1885 ms 198008 KiB
test_0100.txt AC 1876 ms 199440 KiB
test_0101.txt AC 1810 ms 186688 KiB
test_0102.txt AC 1896 ms 193136 KiB
test_0103.txt AC 1899 ms 197628 KiB
test_0104.txt AC 1850 ms 196060 KiB
test_0105.txt AC 1810 ms 191728 KiB
test_0106.txt AC 1819 ms 195392 KiB
test_0107.txt AC 1841 ms 188920 KiB
test_0108.txt AC 1861 ms 195260 KiB
test_0109.txt AC 1821 ms 192124 KiB
test_0110.txt AC 1881 ms 198008 KiB
test_0111.txt AC 1829 ms 192224 KiB
test_0112.txt AC 1851 ms 194792 KiB
test_0113.txt AC 1831 ms 198540 KiB
test_0114.txt AC 1866 ms 197680 KiB
test_0115.txt AC 1863 ms 195172 KiB
test_0116.txt AC 1869 ms 197272 KiB
test_0117.txt AC 1814 ms 191144 KiB
test_0118.txt AC 1881 ms 198600 KiB
test_0119.txt AC 1836 ms 195064 KiB
test_0120.txt AC 1813 ms 188804 KiB
test_0121.txt AC 1858 ms 189604 KiB
test_0122.txt AC 1845 ms 192372 KiB
test_0123.txt AC 1810 ms 191472 KiB
test_0124.txt AC 1846 ms 193708 KiB
test_0125.txt AC 1851 ms 193100 KiB
test_0126.txt AC 1842 ms 189992 KiB
test_0127.txt AC 1875 ms 194492 KiB
test_0128.txt AC 1851 ms 195468 KiB
test_0129.txt AC 1855 ms 201152 KiB
test_0130.txt AC 1848 ms 192540 KiB
test_0131.txt AC 1890 ms 196132 KiB
test_0132.txt AC 1912 ms 196972 KiB
test_0133.txt AC 1878 ms 195688 KiB
test_0134.txt AC 1828 ms 190948 KiB
test_0135.txt AC 1878 ms 197016 KiB
test_0136.txt AC 1856 ms 191340 KiB
test_0137.txt AC 1906 ms 196028 KiB
test_0138.txt AC 1905 ms 194320 KiB
test_0139.txt AC 1882 ms 196980 KiB
test_0140.txt AC 1822 ms 191444 KiB
test_0141.txt AC 1815 ms 193612 KiB
test_0142.txt AC 1869 ms 194308 KiB
test_0143.txt AC 1869 ms 198200 KiB
test_0144.txt AC 1889 ms 191084 KiB
test_0145.txt AC 1841 ms 187980 KiB
test_0146.txt AC 1833 ms 189800 KiB
test_0147.txt AC 1879 ms 187704 KiB
test_0148.txt AC 1910 ms 175376 KiB
test_0149.txt AC 1864 ms 179104 KiB