📜 ⬆️ ⬇️

Parsing tasks Hacker Cup Qualification Round + transfer Facebook Hacker Cup Online Round I

Facebook Hacker Cup 2011 runs in 4 rounds - qualifying, two online rounds and the final, in the main office.

The qualifying round, officially announced by Habrom, was completed successfully.
The results of the round speak of 5846 players who passed the first online tour.
The participants of the qualification round were offered 3 tasks, for the passage it was enough to correctly solve any of them.

But the first online round, interrupting closer to completion, was moved due to technical problems for at least a week:
I’ve been able to run smoothly. It will not follow at least until next weekend.
image

In order to save space, I will shorten the transfer of conditions, leaving the essence necessary for the solution. Full terms are available in original English .
')

Task 1. "Double Squares"



Find the number of representations of an integer as the sum of two full squares of integers (for example: 10 = 1 ^ 2 + 3 ^ 2 - one decomposition, and 25 = 5 ^ 2 + 0 ^ 2 = 4 ^ 2 + 3 ^ 2 two different decompositions) .

On incoming numbers:
10 25 3 0 1
The correct answer of the program:
1 2 0 1 1
A time limit is imposed on the task - the answer must be sent before the expiration of 6 minutes from the moment of downloading the task file, in which the maximum is 100 numbers requiring the calculation of the number of expansions.

We solve:


Score: the root of 2147483647 is 46340.95 - not so much.
Idea: fill the array with full squares from 0 to 46341

then the task will be reduced to running from the two ends of the array inwards:

In the meantime, the head thinks, the hands have time to dial a curved solution by brute force (bypassing the array from left to right and from the difference between the original number and the square, taking the root).
I will not give the code - we will save attention for more interesting tasks.

Task 2. Peg Game



Washers (red) are fixed between the two walls:



A coin falls from a green circle, which, flying on a washer, equally likely bounces to the left or to the right (from the extreme washer, the coin always bounces inside). Falling coin falls into a blue circle - exit. If a coin is thrown into the middle circle, it can travel along any arrow:



In the input data, the size of the “field” is indicated - always an odd number of lines, and any number of columns, and the number of the output to which you want to get a coin.
For the answer take the window number and the probability with which the coin falls into the specified output with the highest probability.
In addition, some pucks are removed (lost from time).

We will consider a smaller field, in which 1 washer is lost, and you need to get to the middle exit:



Decision


Recursion with counting all sorts of ways does not have time - the maximum field size is 99 to 100 and in the allotted 6 minutes you need to have time to calculate up to 100 different fields, and have time to send back the result.

Key idea:


We go from the bottom up, from the exit point - we put the probability in it 1. We can get into it from two points, to the left-above and to the right-above. From these points we reach the exit point with a probability of 1/2. The rule of addition of probabilities speaks about their multiplication. Level finished, go to the following: There are 2 points, with probabilities 1/2. We independently consider their contribution to the following:

Now we add (already in the usual way) the obtained probabilities in order to get the third layer, which turns out to be the last. (Otherwise, for each element with a nonzero probability we start a similar process).
We have that in the middle exit you can get only by throwing a coin from the middle or right window, and with the same probability.
In the source format of this facebook, the field in question is represented by the line: 3 4 1 1 0

Now we implement this idea:
#!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  1. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  2. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  3. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  4. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  5. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  6. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  7. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  8. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  9. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  10. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  11. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  12. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  13. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  14. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  15. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  16. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  17. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  18. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  19. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  20. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  21. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  22. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  23. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  24. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  25. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  26. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  27. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  28. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  29. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  30. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  31. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  32. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  33. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  34. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  35. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  36. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  37. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  38. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  39. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  40. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  41. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  42. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  43. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  44. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  45. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  46. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  47. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  48. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  49. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  50. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  51. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  52. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  53. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  54. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  55. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  56. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  57. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  58. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  59. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  60. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  61. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  62. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  63. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  64. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  65. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  66. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  67. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  68. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  69. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  70. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  71. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  72. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  73. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  74. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  75. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
  76. #!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .
#!/usr/bin/python #coding=utf-8 # "" def next(y,x,v): l=[] if (x+y)%2==0: # l.append((y-1,x,v)) return l # if (y-1,x) in skip:# l.append((y-1,x,v)) # - # if x!=0:# if x!=0 and x!=size: if (y,x-1) not in skip:# if x==1 or (y%2==1 and ( x==2 or x==size)): # - , l.append((y-1,x-1,v))# else : l.append((y-1,x-1,v/2.))# - # - # if x!=size:# if (y,x+1) not in skip:# if x==size-1 or (y%2==1 and ( x+1==2 or x+1==size-2)): l.append((y-1,x+1,v))# else : l.append((y-1,x+1,v/2.))# - return l # def rc_to_yx(rs,cs): if rs%2==0: return (rs,cs*2) return (rs,cs*2+1) f = open( 'in' , 'r' ) f.readline() lines_in=f.readlines() for inputWords in lines_in: skip_l = [] skip= set (skip_l) inputWords = inputWords[0:-1].split( ' ' ) inputWords= filter (lambda a: a != "" , inputWords) r= int (inputWords.pop(0)) c= int (inputWords.pop(0)) target= int (inputWords.pop(0)) s_count=inputWords.pop(0) for q in range( int (s_count)): rs=inputWords.pop(0) cs=inputWords.pop(0) skip.add(rc_to_yx( int (rs), int (cs))) # , size=c+c-2 # "" , n={} n[(r-1,target*2+1)]=1 for q in range(r-1): s=n n={} for (b,a),v in s.iteritems(): for (y,x,v) in next(b,a,v): try : n[(y,x)]+=v except KeyError: n[(y,x)]=v #print n # # , maxv=0 maxx=0 for (y,x),v in n.iteritems(): if v>maxv: maxv=v maxx=x #, - 6 print '%(i)d %(d)f' % \ { "i" :(maxx-1)/2, "d" :maxv} print * This source code was highlighted with Source Code Highlighter .


Task 3. “Studious Student”


Rearranging the words of this set to make a word with the smallest lexicographical order (as in the dictionary).

For example, from the set: facebook hacker cup for studious students
Need to get the word: cupfacebookforhackerstudentsstudious

Decision


(deleted the wrong solution)

Solution from habrauser funca , complexity O (N!)
  1. from itertools import permutations
  2. source = "jibw ji jp bw jibw"
  3. words = source.split ()
  4. answer = min ( "" .join (combination) for combination in permutations (words))
* This source code was highlighted with Source Code Highlighter .

By the condition N <= 9, factorial complexity is excellent
Plus this comment


Solution from habrauzer Skiminok complexity O (N log N)
  1. from functools import cmp_to_key
  2. def comp (a, b):
  3. return -1 if a + b <b + a else 1 if a + b> b + a else 0
  4. def solve (s):
  5. return "" .join (sorted (s.split (), key = cmp_to_key (comp)))
* This source code was highlighted with Source Code Highlighter .

Plus this comment

Shorter lambda version by funca
  1. def solve (s):
  2. return "" .join (sorted (s.split (), cmp = lambda a, b: cmp (a + b, b + a)))
* This source code was highlighted with Source Code Highlighter .

Plus this comment

Source: https://habr.com/ru/post/111898/


All Articles