Pagini recente » Cod sursa (job #2812460) | Cod sursa (job #227184) | Cod sursa (job #1630225) | Cod sursa (job #1608787) | Cod sursa (job #2782218)
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()
def bf_lee():
global mi,sx,sy,fin
p=u=1
while p<=u:
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]
if ok==0:
tt=i,j
if tt in fin:
fin.remove(tt)
p+=1
bf_lee()
tt=1,1
fin.insert(0,tt)
with open(director2, "w") as g:
if len(fin)%2 !=0:
k1 = (len(fin) // 2) + 1
k2 = fin[k1-1][0]
k3 = fin[k1-1][1]
g.write(str(k1) + " " + str(k2) + " " + str(k3))
else:
k1 = (len(fin) // 2)
k2 = fin[k1][0]
k3 = fin[k1][1]
g.write(str(k1) + " " + str(k2) + " " + str(k3))