import random

koszt_s=5
kara_u=100

popyt=[14,15,16,20,23,25,30,31]
popyt_p=[0,.05,.15,.40,.5,.7,.75,.9]

dostawa=[1,2,3,4]
dostawa_p=[0,.4,.6,.9]




t=50



def symulacja(R,i,debug=0):
	def zamowienie(t):
		los=random.random()
		dost_t=0
		for jj in range(len(dostawa_p)):
			if los>dostawa_p[jj]:
				dost_t=dostawa[jj]
		dostawy[t+dost_t]+=Q

	stan_m=[0 for i in range(t)]
	#stan poczatkowy
	stan_m[0]=100

	dostawy=[0 for i in range(t+4)]
	pieniazki=0
	Q=20*i


	for ii in range(t):
		if ii!=0:
			stan_m[ii]=stan_m[ii-1]
			stan_m[ii]+=dostawy[ii]
		pieniazki-=koszt_s*stan_m[ii]
		los=random.random()
		popyt_t=0
		for jj in range(len(popyt_p)):
			if los>popyt_p[jj]:
				popyt_t=popyt[jj]
		if popyt_t<stan_m[ii]:
			stan_m[ii]-=popyt_t
		else:
			stan_m[ii]=0
			pieniazki-=kara_u*(popyt_t-stan_m[ii])
		if stan_m[ii]<R:
			zamowienie(ii)
		if debug==1:
			print('Dzien:',ii+1)
			print('Pieniadze:',pieniazki)
			print('Stan magazynu:',stan_m[ii])
	return pieniazki


max_l=0
max_m=0
max=0
for ll in range(100):
	print ('R=',ll)
	for mm in range(1,6):
		print ('i=',mm)
		pieniadz_r=symulacja(ll,mm)
		if pieniadz_r>max or (ll==0 and mm==1):
			max=pieniadz_r
			max_l=ll
			max_m=mm
		print( 'Stan kasy: ',pieniadz_r)
	
		
print('Najlepsze R: ', max_l)
print('Najlepsze i: ', max_m)
print('Koszty: ',max)




		
		
	