Pagini recente » Cod sursa (job #1149083) | Cod sursa (job #2318683) | Cod sursa (job #2329437) | Cod sursa (job #2621743) | Cod sursa (job #2782237)
import sys
import re
director=sys.argv[1] if len(sys.argv)>1 else "rj.in"
director2=sys.argv[2] if len(sys.argv)>1 else "rj.out"
a=[]
with open(director, "r") as f:
mc = f.readline().rstrip('\n')
mc = re.split('\W+', mc)
n = int(mc[0])
mm=int(mc[1])
m=n
while m:
l=[]
mc = f.readline().rstrip('\n')
for i in mc:
if i=='X':
l.append(-1)
elif i==' ':
l.append(0)
elif i=='R':
rx=n-m+1
ry=len(l)+1
l.append(0)
elif i=='J':
jx=n-m+1
jy=len(l)+1
l.append(0)
a.append(l)
m-=1
dx = [-1,1,1,-1,0,1,0,-1]
dy = [-1,-1,1,1,-1,0,1,0]
x=[]
y=[]
mi=99999
a[rx-1][ry-1]=1
x.append(rx)
y.append(ry)
fin=list()
finn=list()
def bf_lee(p,u):
global mi,fin, finn
if p<=u and p<=n and u<=mm:
i=x[p-1]
j=y[p-1]
#ok=0
for k in range(8):
ii=i+dx[k]
jj=j+dy[k]
if ii > 0 and ii <= n and jj > 0 and jj <= mm and a[ii-1][jj-1] == 0:
#ok=1
u+=1
x.append(ii)
y.append(jj)
tt=ii,jj
fin.append(tt)
a[ii-1][jj-1]=a[i-1][j-1]+1
if ii == jx and jj == jy:
if a[ii-1][jj-1] > 0 and a[ii-1][jj-1] < mi:
mi=a[ii-1][jj-1]
finn=fin.copy()
return 0
else:
bf_lee(p+1,u)
fin.pop()
p+=1
else:
return 0
bf_lee(1,1)
tt=rx,ry
finn.insert(0,tt)
with open(director2, "w") as g:
if len(finn)%2 !=0:
k1 = (len(finn) // 2) + 1
k2 = finn[k1-1][0]
k3 = finn[k1-1][1]
g.write(str(k1) + " " + str(k2) + " " + str(k3))
else:
k1 = (len(finn) // 2)
k2 = finn[k1][0]
k3 = finn[k1][1]
g.write(str(k1) + " " + str(k2) + " " + str(k3))