SHARE
TWEET

Untitled

a guest Oct 20th, 2019 96 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def bfs(root):
  2.     rs=root
  3.     i=1
  4.     ugly=15
  5.     while rs is not None:
  6.         n=rs
  7.         rs=None
  8.         c=None
  9.         I=0
  10.         flag=True
  11.         while i:
  12.             i -=1
  13.             if flag:
  14.                 if n.right is not None:rs=c=n.right
  15.                 if n.left  is not None:rs=c=n.left
  16.                 I=1
  17.                 flag=False
  18.             if n.left  is not None:
  19.                 c.right=n.left
  20.                 c=c.right
  21.                 I+=1
  22.             if n.right is not None:
  23.                 c.right=n.right
  24.                 c=c.right
  25.                 I+=1
  26.             print('c=',c.value,'\tn=',n.value,'\trs=',rs.value)
  27.             n=n.right
  28.            
  29.             ugly+=1
  30.             if ugly==20:return
  31.         i=I
  32. import binarytree as b
  33. tree=b.tree(is_perfect=True);print(tree);bfs(tree)
  34. ans=tree.left.left.right.value
  35. ans=tree.left.right.right.value
  36. ans=tree.right.left.value
  37. ans=tree.right.right.value
  38. from itertools import combinations
  39. l=[5,10,15,20,25]
  40. def f(l):
  41.     for c in combinations(range(len(l))):
  42.         c=set(c)
  43.         s=set(range(len(l)))-c
  44.         c=set(gather(l,*list(c)))
  45.         s=set(gather(l,*list(s)))
  46.         s1=sum(c,0)
  47.         s2=sum(s,0)
  48.         yield abs(s1-s2),c,s
  49. ans=f(l)
  50. for x in ans:
  51.     print(x)
  52. for x in f(l):
  53.     print(x)
  54. def f(l):
  55.   for i in range(len(l)):
  56.     for c in combinations(range(len(l)),i):
  57.         c=set(c)
  58.         s=set(range(len(l)))-c
  59.         c=set(gather(l,*list(c)))
  60.         s=set(gather(l,*list(s)))
  61.         s1=sum(c,0)
  62.         s2=sum(s,0)
  63.         yield abs(s1-s2),c,s
  64. for x in f(l):
  65.     print(x)
  66. def f(l):
  67.   for i in range(len(l)):
  68.     for c in combinations(range(len(l)),i):
  69.         c=set(c)
  70.         s=set(range(len(l)))-c
  71.         c=set(gather(l,list(c)))
  72.         s=set(gather(l,list(s)))
  73.         s1=sum(c,0)
  74.         s2=sum(s,0)
  75.         yield abs(s1-s2),c,s
  76. for x in f(l):
  77.     print(x)
  78. def g(l):
  79.     return min(f(l),key= lambda x: x[0])[1:]
  80. ans=f(l)
  81. ans=g(l)
  82. ans=randints(10)
  83. l= ans
  84. ans=g(ans)
  85. ans=g(l)
  86. ans=g(l)
  87. ans=g(l)
  88. ans=g(l)
  89. def t(l):
  90.     a=0
  91.     b=0
  92.     A=set()
  93.     B=set()
  94.     def score(a,b):
  95.         return abs(a-b)
  96.     for i in sorted(l,reverse=True):
  97.         if score(a+i,b)<score(a,b+i):
  98.             a+=i
  99.             A.add(i)
  100.         else:
  101.             b+=i
  102.             B.add(i)
  103.     return A,B
  104.  
  105.  
  106.    
  107. ans=t(l)
  108. def score(ans):
  109.     return abs(sum(ans[0])-sum(ans[1]))
  110. ans=score(ans)
  111. ans=score(({65, 17, 59, 61}, {89, 74, 4, 28, 5}))
  112. ans=l
  113. g()
  114. ans=g(l)
  115. ans=t(l)
  116. def t(l):
  117.     a=[]
  118.     b=[]
  119.     def move():
  120.         for i in a:
  121.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  122.                 del a.index(i)
  123.                 b.append(i)
  124.         for i in b:
  125.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  126.                 del b.index(i)
  127.                 a.append(i)
  128.     for _ in range(len(l)*10):
  129.         return a,b
  130. def t(l):
  131.     a=[]
  132.     b=[]
  133.     def move():
  134.         for i in a:
  135.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  136.                 del a.index(i)
  137.                 b.append(i)
  138.         for i in b:
  139.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  140.                 del b[b.index(i)]
  141.                 a.append(i)
  142.     for _ in range(len(l)*10):
  143.         return a,b
  144. def t(l):
  145.     a=[]
  146.     b=[]
  147.     def move():
  148.         for i in a:
  149.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  150.                 del a[a.index(i)]
  151.                 b.append(i)
  152.         for i in b:
  153.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  154.                 del b[b.index(i)]
  155.                 a.append(i)
  156.     for _ in range(len(l)*10):
  157.         return a,b
  158. ans=t(l)
  159. def t(l):
  160.     a=l.copy()
  161.     b=[]
  162.     def move():
  163.         for i in a:
  164.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  165.                 del a[a.index(i)]
  166.                 b.append(i)
  167.         for i in b:
  168.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  169.                 del b[b.index(i)]
  170.                 a.append(i)
  171.     for _ in range(len(l)*10):
  172.         return a,b
  173. ans=t(l)
  174. def t(l):
  175.     a=l.copy()
  176.     b=[]
  177.     def move():
  178.         for i in a:
  179.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  180.                 del a[a.index(i)]
  181.                 b.append(i)
  182.         for i in b:
  183.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  184.                 del b[b.index(i)]
  185.                 a.append(i)
  186.     for _ in range(len(l)*10):
  187.         return a,b
  188. ans=t(l)
  189. def t(l):
  190.     a=l.copy()
  191.     b=[]
  192.     def move():
  193.         for i in a:
  194.             if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  195.                 del a[a.index(i)]
  196.                 b.append(i)
  197.         for i in b:
  198.             if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  199.                 del b[b.index(i)]
  200.                 a.append(i)
  201.     for _ in range(len(l)*10):
  202.         move()
  203.     return a,b
  204. t(l)
  205. def t(l):
  206.     a=l.copy()
  207.     b=[]
  208.     def move():
  209.         for i in a:
  210.             if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  211.                 del a[a.index(i)]
  212.                 b.append(i)
  213.         for i in b:
  214.             if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  215.                 del b[b.index(i)]
  216.                 a.append(i)
  217.     for _ in range(len(l)*10):
  218.         move()
  219.     return a,b
  220. t(l)
  221. ans=l
  222. ans=r
  223. def t(l):
  224.     l=list(l)
  225.     a=l.copy()
  226.     b=[]
  227.     def move():
  228.         for i in a:
  229.             if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  230.                 del a[a.index(i)]
  231.                 b.append(i)
  232.         for i in b:
  233.             if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  234.                 del b[b.index(i)]
  235.                 a.append(i)
  236.     for _ in range(len(l)*10):
  237.         move()
  238.     return a,b
  239. ans=t(l)
  240. ans=score(ans)
  241. def t(l):
  242.     l=list(l)
  243.     a=l.copy()
  244.     b=[]
  245.     def move():
  246.         nonlocal a,b
  247.         a=shuffled(a)
  248.         b=shuffled(b)
  249.         for i in a:
  250.             if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  251.                 del a[a.index(i)]
  252.                 b.append(i)
  253.         for i in b:
  254.             if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  255.                 del b[b.index(i)]
  256.                 a.append(i)
  257.     for _ in range(len(l)*10):
  258.         move()
  259.     return a,b
  260. ans=t(l)
  261. ans=score(ans)
  262. def t(l):
  263.     l=list(l)
  264.     a=l.copy()
  265.     b=[]
  266.     def move():
  267.         nonlocal a,b
  268.         a=shuffled(a)
  269.         b=shuffled(b)
  270.         for i in a:
  271.             if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  272.                 del a[a.index(i)]
  273.                 b.append(i)
  274.         for i in b:
  275.             if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  276.                 del b[b.index(i)]
  277.                 a.append(i)
  278.     for _ in range(len(l)*100):
  279.         move()
  280.     return a,b
  281. ans=t(l)
  282. ans=score(ans)
  283. def I(a,b):
  284.     def iscore(i,a,b):
  285.         A=a.copy()
  286.         B=b.copy()
  287.         B.append(a[i])
  288.         del A[i]
  289.         return (score((a,b))-score((A,B)))
  290.     def isc(i):
  291.         return iscore(i,a,b)
  292.     return max(range(len(a)),key=isc)
  293. def S(a,b,i):
  294.     b.append(a[i])
  295.     del a[i]
  296. def F(a):
  297.     a=list(a)
  298.     A=a.copy()
  299.     B=[]
  300.     for _ in range(len(a)):
  301.         S(A,B,I(A,B))
  302.     return A,B
  303.        
  304. ans=F(l)
  305. def I(a,b):
  306.     def iscore(i,a,b):
  307.         A=a.copy()
  308.         B=b.copy()
  309.         B.append(a[i])
  310.         del A[i]
  311.         return (score((a,b))-score((A,B)))
  312.     def isc(i):
  313.         return iscore(i,a,b)
  314.     out=max(range(len(a)),key=isc)
  315.     if isc(out)>=0:
  316.         return out
  317.     return None
  318. def F(a):
  319.     a=list(a)
  320.     A=a.copy()
  321.     B=[]
  322.     for _ in range(len(a)):
  323.         ii=I(A,B)
  324.         if ii is None:
  325.             return
  326.         S(A,B,ii)
  327.     return A,B
  328.        
  329. F(l)
  330. def F(a):
  331.     a=list(a)
  332.     A=a.copy()
  333.     B=[]
  334.     for _ in range(len(a)):
  335.         ii=I(A,B)
  336.         if ii is None:
  337.             break
  338.         S(A,B,ii)
  339.     return A,B
  340.        
  341. ans=F(l)
  342. ans=score(ans)
  343. ans=g(l)
  344. ans=score(ans)
  345. ans=randints(20)
  346. l= ans
  347. g(ans)
  348. def t(l):
  349.     l=list(l)
  350.     a=l.copy()
  351.     b=[]
  352.     def move():
  353.         nonlocal a,b
  354.         a=shuffled(a)
  355.         b=shuffled(b)
  356.         for i in a:
  357.             if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  358.                 del a[a.index(i)]
  359.                 b.append(i)
  360.         for i in b:
  361.             if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  362.                 del b[b.index(i)]
  363.                 a.append(i)
  364.     for _ in range(len(l)*100):
  365.         move()
  366.     return a,b
  367. ans=t(l)
  368. ans=score(ans)
  369. score(t(k))
  370. ans=score(t(l))
  371. ans=score(t(l))
  372. ans=score(t(l))
  373. ans=score(t(l))
  374. ans=score(t(l))
  375. ans=score(t(l))
  376. ans=score(t(l))
  377. ans=score(t(l))
  378. ans=score(t(l))
  379. ans=score(t(l))
  380. ans=score(t(l))
  381. ans=F(l)
  382. ans=score(ans)
  383. def f(l):
  384.     a=l.copy()
  385.     b=[]
  386.     for _ in range(len(a)):
  387.         diff=sum(a)-sum(b)
  388.         d=enumerate(diff-e for i,e in enumerate(a))
  389.         i,v=max(d,key= lambda x: x[1])
  390.         if v<=0:
  391.             break
  392.         del a[i]
  393.         b.append(v)
  394.     return a,b
  395.        
  396.        
  397.        
  398. f(l)
  399. def f(l):
  400.     l=list(l)
  401.     a=l.copy()
  402.     b=[]
  403.     for _ in range(len(a)):
  404.         diff=sum(a)-sum(b)
  405.         d=enumerate(diff-e for i,e in enumerate(a))
  406.         i,v=max(d,key= lambda x: x[1])
  407.         if v<=0:
  408.             break
  409.         del a[i]
  410.         b.append(v)
  411.     return a,b
  412.        
  413.        
  414.        
  415. ans=f(l)
  416. ans=f(l)
  417. ans=randints(10)
  418. ans=f(ans)
  419. def f(l):
  420.     l=list(l)
  421.     a=l.copy()
  422.     b=[]
  423.     for _ in range(len(a)):
  424.         diff=sum(a)-sum(b)
  425.         d=enumerate((i,diff-e) for i,e in enumerate(a))
  426.         i,v=max(d,key= lambda x: x[1])
  427.         if v<=0:
  428.             break
  429.         del a[i]
  430.         b.append(v)
  431.     return a,b
  432.        
  433.        
  434.        
  435. f(ans)
  436. def f(l):
  437.     l=list(l)
  438.     a=l.copy()
  439.     b=[]
  440.     for _ in range(len(a)):
  441.         diff=sum(a,0)-sum(b,0)
  442.         d=enumerate((i,diff-e) for i,e in enumerate(a))
  443.         i,v=max(d,key= lambda x: x[1])
  444.         if v<=0:
  445.             break
  446.         del a[i]
  447.         b.append(v)
  448.     return a,b
  449.        
  450.        
  451.        
  452. f(ans)
  453. f(l)
  454. ans=l
  455. f(l)
  456. def f(l):
  457.     l=list(l)
  458.     a=l.copy()
  459.     b=[]
  460.     for _ in range(len(a)):
  461.         diff=sum(a,0)-sum(b,0)
  462.         d=enumerate((i,diff-e) for i,e in enumerate(a))
  463.         i,v=max(d,key= lambda x: x[1])
  464.         if v<=0:
  465.             break
  466.         del a[i]
  467.         b.append(v)
  468.     return a,b
  469.        
  470.        
  471.        
  472. def f(l):
  473.     l=list(l)
  474.     a=l.copy()
  475.     b=[]
  476.     for _ in range(len(a)):
  477.         diff=sum(a,0)-sum(b,0)
  478.         d=enumerate((i,diff-e) for i,e in enumerate(a))
  479.         i,v=max(d,key= lambda x: x[1])
  480.         print(v)
  481.         if v<=0:
  482.             break
  483.         del a[i]
  484.         b.append(v)
  485.     return a,b
  486.        
  487.        
  488.        
  489. f(l)
  490. def f(l):
  491.     l=list(l)
  492.     a=l.copy()
  493.     b=[]
  494.     for _ in range(len(a)):
  495.         diff=sum(a,0)-sum(b,0)
  496.         d=enumerate((i,diff/2-e) for i,e in enumerate(a))
  497.         i,v=max(d,key= lambda x: x[1])
  498.         print(v)
  499.         if v<=0:
  500.             break
  501.         del a[i]
  502.         b.append(v)
  503.     return a,b
  504.        
  505.        
  506.        
  507. f(l)
  508. def f(l):
  509.     l=list(l)
  510.     a=l.copy()
  511.     b=[]
  512.     for _ in range(len(a)):
  513.         diff=sum(a,0)-sum(b,0)
  514.         d=enumerate((i,diff/2-e) for i,e in enumerate(a))
  515.         print(list(d))
  516.         i,v=max(d,key= lambda x: x[1])
  517.         print(v)
  518.         if v<=0:
  519.             break
  520.         del a[i]
  521.         b.append(v)
  522.     return a,b
  523.        
  524.        
  525.        
  526. f(l)
  527. def f(l):
  528.     l=list(l)
  529.     a=l.copy()
  530.     b=[]
  531.     for _ in range(len(a)):
  532.         diff=sum(a,0)-sum(b,0)
  533.         d=tuple((i,diff/2-e) for i,e in enumerate(a))
  534.         print(list(d))
  535.         i,v=max(d,key= lambda x: x[1])
  536.         print(v)
  537.         if v<=0:
  538.             break
  539.         del a[i]
  540.         b.append(v)
  541.     return a,b
  542.        
  543.        
  544.        
  545. ans=f(l)
  546. def f(l):
  547.     l=list(l)
  548.     a=l.copy()
  549.     b=[]
  550.     for _ in range(len(a)):
  551.         diff=sum(a,0)-sum(b,0)
  552.         d=tuple((i,e,diff/2-e) for i,e in enumerate(a))
  553.         print(list(d))
  554.         i,v,_=max(d,key= lambda x: x[2])
  555.         print(v)
  556.         if v<=0:
  557.             break
  558.         del a[i]
  559.         b.append(v)
  560.     return a,b
  561.        
  562.        
  563.        
  564. ans=f(l)
  565. def f(l):
  566.     l=list(l)
  567.     a=l.copy()
  568.     b=[]
  569.     for _ in range(len(a)):
  570.         diff=sum(a,0)-sum(b,0)
  571.         d=tuple((i,e,diff/2-e) for i,e in enumerate(a))
  572.         print(list(d))
  573.         i,v,_=min(d,key= lambda x: x[2])
  574.         print(v)
  575.         if _<=0:
  576.             break
  577.         del a[i]
  578.         b.append(v)
  579.     return a,b
  580.        
  581.        
  582.        
  583. ans=f(l)
  584. ans=score(ans)
  585. ans=t(l)
  586. ans=score(ans)
  587. ans=t(l)
  588. ans=score(ans)
  589. ans=F(l)
  590. ans=score(ans)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top