Is any further optimization possible? (Codeforces) I am an average coder trying to improve my Python by doing solved problems in it.

One of the problem I did is this, here is the code I tried which
I have based on the official solution:

def area(A, B, C):
  return float((x[B] - x[A])*(y[C] - y[B]) - (y[B] - y[A])*(x[C] -x[B]))/2
x, y = {}, {}
n = int(raw_input())
for i in xrange(n):
  arr = raw_input().split()
  x[i] , y[i] = int(arr[0]), int(arr[1])

maxarea = 0
for i in xrange(n):
  for j in xrange(i+1, n):
    maxminus, maxplus = -1, -1
    for k in xrange(n):
      if k != i and k != j:
        a = area(i,j,k)
        if(a&lt;0):
          maxminus = max(maxminus, -a)
        else:
          maxplus = max(maxplus, a)
    if maxplus &gt;= 0 and maxminus &gt;=0:
      maxarea = max(maxarea, (maxplus+maxminus))
print maxarea


The code is still giving me TLE on test case 7.
Can anybody suggest further optimization?
Firstly you need to put all the global statements into a function because of Python code runs faster in a function compared to global scope.

You don't need the arr variable. You can just use 

x[i], y[i] = map(int, raw_input().split())


instead of using the two lines. map uses the function(1st argument) on each of the outputs from the second argument.

After placing the global statements into a function then instead of passing i, j, k you would need to pass the values directly.

I'll look up the algorithm and see if there are other changes that can be made.