Skip to content

Instantly share code, notes, and snippets.

@ovidijusr
Last active May 15, 2017 18:23
Show Gist options
  • Save ovidijusr/50a05f3ff1310d5d715b13db1204c7e4 to your computer and use it in GitHub Desktop.
Save ovidijusr/50a05f3ff1310d5d715b13db1204c7e4 to your computer and use it in GitHub Desktop.
import time #laiko biblioteka
start_time = time.time() #pradedama skaičiuoti laiką
#aprašoma rekursinė poaibių sumos skaičiavimo funkcija
def poaibiai(dabsuma,gal,mas,iras,n):
if gal==suma :
for i in range(0,n):
if iras[i]:
print (mas[i])
i = i+1
for i in range(i,n):
if iras[i]:
print (mas[i])
return
i=dabsuma
for i in range(i,n):
if gal+mas[i]>suma :
continue
if i>0 and mas[i]==mas[i-1] and not iras[i-1] :
continue
iras[i]=1
poaibiai(i+1,gal+mas[i],mas,iras,l)
iras[i]=0
failas = open("data.txt", "r")
iras = []
eil=failas.read()
sar=eil.split("\n")
mas = []
for i in range (len(sar)-1):
mas.append(int(sar[i].strip(' ')))
suma = 100
l = len(mas)
for i in range(0,l):
iras.append(0)
poaibiai(0,0,mas,iras,l)
print(time.time() - start_time)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment