GSS3 - Can you answer these queries III

You are given a sequence A of N (N <= 50000) integers between -10000 and 10000. On this sequence you have to apply M (M <= 50000) operations:
modify the i-th element in the sequence or for given x y print max{Ai + Ai+1 + .. + Aj | x<=i<=j<=y }.

Input

The first line of input contains an integer N. The following line contains N integers, representing the sequence A1..AN.
The third line contains an integer M. The next M lines contain the operations in following form:
0 x y: modify Ax into y (|y|<=10000).
1 x y: print max{Ai + Ai+1 + .. + Aj | x<=i<=j<=y }.

I'm struggling with the IO in this problem.
I generate a random input of 50,000 integers from -10,000 to 10,000 and then I do 50,000 random operations with random numbers and positions and ranges. I'm testing this with the limits and my code, without the IO part finishes all that on average in 130ms. That gives a lot of room for the IO part. However, I'm getting TLE!
I tried BufferedReader and BufferedWriter to flush everything at the end. Also, I tried the Scanner. I suspect that part of the problem may be the formatting of the test case, my IO operations may be hanging waiting for inputs somewhere. I wish the author (or somebody from SPOJ) fixes the formatting to the test cases of this problem.
Anybody here with the same problem? Any advise?